React(14.2)とReduxを使用しています。更新時にアクションをディスパッチすると、再帰ループが発生します。React Reduxディスパッチで再帰エラーが発生する
componentWillMount() {
const { wizardActions, valid, errors } = this.props
wizardActions.setPropState({valid: valid, errors: errors})
}
componentWillUpdate(nextProps) {
const { wizardActions } = this.props
console.log('NP', nextProps)
//*** IF I UNCOMMENT THE FOLLWOING LINES THE APP GOES INTO AN INFINTIE
// RECURSION LOOP...
/*if(this.props !== nextProps) {
wizardActions.setPropState({valid: nextProps.valid, errors: nextProps.errors})
}*/
}
現在のコンポーネントの小道具が変更された場合、どのようにRedux状態を更新できますか?私もcomponentWillReceiveProps()
でこれを試して同じことをします。
TIA!
'if'文を使用しますか?確かに、 'this.props!== nextProps'のような特定の状況の更新後にディスパッチしたいだけです。 – azium
ifステートメントを追加しましたが、それと同じ振る舞いです –
ああ、* exact * ifステートメントにすることはできません。常に異なっています。それは常に真と評価されます。新しいものにしたい小道具内の特定の値を比較する必要があります。 – azium