与えられたURLのユーザーデータを表示する、ステートレスで機能的なUserProfile
コンポーネントを考えてみましょう。 connect(mapStateToProps, mapDispatchToProps)(UserProfile)
でラップされているとします。最後に、state.userProfile
に縮小する減速器を考えてみましょう。いつでもURLの変更は、私はそう思い浮かぶのソリューションはそうのようなmapDispatchToProps内からそうすることで、再初期化state.userProfile
行う必要があります。mapDispatchToPropsは初期化アクションをディスパッチする必要がありますか?
function mapDispatchToProps(dispatch, ownProps) {
dispatch(fetchUser(ownProps.userId))
return {
...
}
}
現状では、これは容認できる慣行ですか?または、このマップ関数からすぐにディスパッチを呼び出すことに関連する問題はありますか?
技術的にそれは私の知る限り理解し、まだ純粋な関数であるが、思考私は循環的な発送状況を想像することができます。確認していただきありがとうございます。 –
'dispatch'を呼び出すと純粋ではありませんが、それは副作用です。 –
私はそれが用語の問題だと思いますが、ウィキペディアの定義に従えば、純粋な関数は「常に同じ引数の値で同じ結果の値を評価します」。おそらくあなたが念頭に置いている別の定義があります。 –