理解できない行動を目の当たりにしていますが、それは正しくないようです。
this.props.location
アクションをディスパッチすると、コンポーネント(および params や routeParams などの他の要素) が変更されるため、コンポーネントが再レンダリングされます。「変更」と言うときは、ポインターが異なることを意味しますが、内部のプロパティは同じです。
ディスパッチされたアクションはルートを変更しません。redux ストア内の一部のデータのみです (独自のマウントされたキー上)。
その結果、shouldComponentUpdate
(オーバーライドされていない) 変更が検出され、再レンダリングが強制されます。でも全然変わらない!
データを取得するために 30 秒ごとにサーバーを呼び出すアクションをディスパッチする setInterval ルーチンがあるため、これは面倒です。それでも、この状態の変化を気にしない接続されたコンポーネントは、依然として再レンダリングされます。Redux パネルは、このアクションのみがディスパッチされ、LOCATION_CHANGE がディスパッチされていないことを示しています。
react-router-redux のプラグを抜く (の使用を削除するsyncHistoryWithStore
) と、この動作は停止します。
これは予期された動作ですか、それとも何か見逃していましたか? shouldComponentUpdate
接続されているすべてのコンポーネントでオーバーライドする必要はありません。
反応ルーターの小道具がコンポーネントに注入されている場所を教えていただけますか?