私はユーザープロファイルを持つアプリを持っています。ユーザープロフィールには友人のリストがあり、友達をクリックすると他のユーザープロフィールに移動します。経路と還元状態のデータを同時に更新する
現在、私は(Reduxのルータのリンクを介して)他のプロファイルに移動しクリックしたときには、URLを更新しますが、プロファイルを更新したり、新しいルートをレンダリングされません。
は、ここで私は単純化のために多くのコードを撮影した、単純化されたコードスニペットです。下にレイヤがいくつかありますが、プロファイルコンテナの最上位レイヤで問題が発生します。 UserIdのpropをProfileSectionsのために更新することができれば、すべてが伝播します。あなたが見ることができるように
class Profile extends Component {
componentWillMount() {
const { userId } = this.props.params
if (userId) { this.props.getUser(userId) }
}
render() {
return <ProfileSections userId={user.id} />
}
}
const mapStateToProps = ({ user }) => {
return { user }
}
export default connect(mapStateToProps, { getUser })(Profile);
、何が起こるかは、私は一度だけ起こるとルート変更が、プロファイルデータが更新されない理由であろう、componentWillMount
上getUser
アクションを実行しているということです。
componentWillUpdate
のような別のライフサイクルフックに変更してgetUserアクションを実行すると、状態が更新され続けてコンポーネントが更新されるため、リクエストの無限ループに陥ります。
私はまた、ルートコンポーネントでreact-routerから提供されたonEnter
フックを使用しようとしましたが、同じルートであるため、プロファイルから別のプロファイルへナビゲートするときに起動しないため、動作しません。
私は間違った方法でこのことを考えているとのデータがReduxのストアに格納されている間、私は別のプロファイルからナビゲートするこのような状況を扱うことができる方法についていくつかのガイダンスを探しています信じています。
それはあなたのユースケースに収まる場合はhttps://github.com/reactjs/react-router-reduxを見てすることができます – Aprillion