問題タブ [react-router-redux]
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-redux: history.listen は関数ではありません
を使用した React/Redux アプリがありreact-router-redux
ます。Webpack を使用すると、すべて問題ありません。しかし、Bower をhttps://cdnjs.cloudflare.com/ajax/libs/react-router-redux/4.0.5/ReactRouterRedux.js
(4.0.5 が最新バージョンで、私はreact-router
2.4.1 を持っています) で使用すると、次のエラーが発生します。
history.listen は関数ではありません
ここに私のコードがあります
記録する
History > {length: 2, state: Object, scrollRestoration: "auto"}
listen
プロパティが欠落していることがわかります。
しかし、 のコードに入るsyncHistoryWithStore
と、返されるオブジェクトは listen を含む多くのプロパティを持つオブジェクトです。
Object { v2_compatible : true, ..., listen}
Object
そのため、何らかの形でSymbol
( ) に変換されているように見えますが、そのHistory
理由と方法はわかりません。
reactjs - react-router ルート コンポーネントのコールバックとしてのアクション
onChange
react-router ルートのイベントへのコールバックとして redux アクションを使用したいと思います。また、react-router-redux も使用しています。
何かのようなもの
アクションはどこにfetchCompanies
ありますか。
より一般的には、ルートの変更をリッスンし、最終的に状態と対話するようにしたいと考えています。そのため、アクションを使用することが最も簡単なオプションのように思えます。ただし、次のエラーが表示されます。
これを達成する別の方法はありますか?ルート変更へのコールバックとしてアクションを渡そうとするのは本質的に悪いことですか? そうでない場合、どうすれば機能しますか?
reactjs - React-Router: ルート遷移の前に非同期アクションを待つ方法
特定のルートでasync redux アクションを呼び出し、thunk
応答が成功または失敗するまで遷移を実行しないことは可能ですか?
使用事例
サーバーからデータをロードし、フォームに初期値を入力する必要があります。これらの初期値は、データがサーバーから取得されるまで存在しません。
このようないくつかの構文は素晴らしいでしょう:
redux - アクションをディスパッチすると、react-router-redux がルーターの小道具を変更します
理解できない行動を目の当たりにしていますが、それは正しくないようです。
this.props.location
アクションをディスパッチすると、コンポーネント(および params や routeParams などの他の要素) が変更されるため、コンポーネントが再レンダリングされます。「変更」と言うときは、ポインターが異なることを意味しますが、内部のプロパティは同じです。
ディスパッチされたアクションはルートを変更しません。redux ストア内の一部のデータのみです (独自のマウントされたキー上)。
その結果、shouldComponentUpdate
(オーバーライドされていない) 変更が検出され、再レンダリングが強制されます。でも全然変わらない!
データを取得するために 30 秒ごとにサーバーを呼び出すアクションをディスパッチする setInterval ルーチンがあるため、これは面倒です。それでも、この状態の変化を気にしない接続されたコンポーネントは、依然として再レンダリングされます。Redux パネルは、このアクションのみがディスパッチされ、LOCATION_CHANGE がディスパッチされていないことを示しています。
react-router-redux のプラグを抜く (の使用を削除するsyncHistoryWithStore
) と、この動作は停止します。
これは予期された動作ですか、それとも何か見逃していましたか? shouldComponentUpdate
接続されているすべてのコンポーネントでオーバーライドする必要はありません。
反応ルーターの小道具がコンポーネントに注入されている場所を教えていただけますか?
reactjs - react-router-redux では、非ルート プレゼンテーション コンポーネントはどのように場所を取得する必要がありますか?
MapStateToProp
に場所が入力されていない非ルートコンポーネントから場所にアクセスする良い方法はありownProps
ますか? 私の場合、ルーティングされたコンポーネントから数層下の場所が必要です。多くの階層的なパラメーターの受け渡しを避けることは、Redux を使用する理由の 1 つです。そのため、ルーティングされたコンポーネントから介在するすべてのレイヤーを介して場所を渡すだけにはなりません。私は、悪い選択の最良の方法として、routing
ストアを直接使用することになりましたmapStateToProps
(ドキュメントで警告されています)。
このシナリオは、共通の「フレーム」コンポーネントのセットが親ルートによって配置されるシナリオであり、コンテキストに応じてわずかに変更する必要があります。
reactjs - 反応コンポーネントの現在のパスを取得する
特定のメニュー項目のスタイルを決定するために、ナビゲーション コンポーネントで現在のパスを取得しようとしています。
私はすでにいくつかの通常の容疑者を試しましたが、結果は得られません. 特に React 経由でインジェクトされると思っていたプロパティがありません。
this.props.location
戻り値undefined
this.props.context
戻り値undefined
私は、、、をreact 15
使用redux 3.5
しreact-router 2
ますreact-router-redux 4