問題タブ [react-router-v4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - React Router v4 を使用して React アプリの外部で履歴インスタンスにアクセスするにはどうすればよいですか?
外部スクリプト ファイルを共有して、バニラ JS で全社的なヘッダーを作成する React アプリがあります。そのヘッダーには、それを呼び出しているアプリケーションのルートに動的にバインドされるロゴがあります ( location.origin
)。
クリック ナビゲーションをキャプチャし、代わりに React Router v3 を使用することは、以前は簡単でした。これは、ルートを設定している場所ならどこでも browserHistory へのアクセスが発生するためです。
React Router v4 ( react-router-dom
) では、コンポーネント内のどこかにリスナーをバインドして使用せずに、どうすればこれを達成できますprops.history
か?
javascript - history.listen が componentDidMount でトリガーされない
ルーティングにreact-router v4を使用しており、クエリパラメーターを解析しています。history.listen
ここで使用することをお勧めします
ライフサイクル フック内で呼び出してcomponentDidMount
、コンポーネントがマウントされていることを確認し、次のような高次コンポーネントを使用してコンポーネントの状態の一部として提供できるようにします。
ルートhistory.listen
が新しいページに移動したとき、または新しいクエリ パラメータがページに追加されたときに、 がトリガーされることはありません。