0

理解できない行動を目の当たりにしていますが、それは正しくないようです。

this.props.locationアクションをディスパッチすると、コンポーネント(および params や routeParams などの他の要素) が変更されるため、コンポーネントが再レンダリングされます。「変更」と言うときは、ポインターが異なることを意味しますが、内部のプロパティは同じです。

ディスパッチされたアクションはルートを変更しません。redux ストア内の一部のデータのみです (独自のマウントされたキー上)。

その結果、shouldComponentUpdate(オーバーライドされていない) 変更が検出され、再レンダリングが強制されます。でも全然変わらない!

データを取得するために 30 秒ごとにサーバーを呼び出すアクションをディスパッチする setInterval ルーチンがあるため、これは面倒です。それでも、この状態の変化を気にしない接続されたコンポーネントは、依然として再レンダリングされます。Redux パネルは、このアクションのみがディスパッチされ、LOCATION_CHANGE がディスパッチされていないことを示しています。

react-router-redux のプラグを抜く (の使用を削除するsyncHistoryWithStore) と、この動作は停止します。

これは予期された動作ですか、それとも何か見逃していましたか? shouldComponentUpdate接続されているすべてのコンポーネントでオーバーライドする必要はありません。

反応ルーターの小道具がコンポーネントに注入されている場所を教えていただけますか?

4

0 に答える 0