2017-12-19 16 views
2

私は、RedStructによって呼び出されたmapStateToProps関数の後に何が呼び出されたのかわかりません。mapStateToPropsの次に呼び出されるもの

mapStateToProps関数の後で次に主に呼び出されるのは何ですか、いつ私の小道具にアクセスできますか?

答えて

2

mapStateToPropsの更新プログラムをコンポーネントの小道具を、したがってcomponentWillReceivePropsが更新小道具を受信する機能であり、あなたがチェックを実行し、

componentWillReceiveProps(nextProps) { 
    if(nextProps['yourMontoringProps'] !== this.props['yourMontoringProps']) { 
     console.log(nextProps) // take action here based on nextProps; 
    } 
} 

P.S.を、必要なアクションを取ることができる場所です mapStateToPropsによってコンポーネントに渡された最初の小道具はcomponentDidMount/componentWillMount/constructor関数で利用できるため、これらを使用して初期アクションをとることができます。 componentDidMountはお勧めの場所ですが、

+0

本当にそうではありません。私は還元剤の状態を変えないからです。 –

+1

接続は純粋なので、コンポーネントに何も変更がなければ、コンポーネントは再レンダリングされません。したがって、mapStateToPropsが何かを更新した場合は、私が言ったように、componentWillReceiveProps(this.propsではなくnextPropsで) –

+1

で利用できるようになります。そのmapStateToPropsストアからデータを読み込むだけで、それ以外は何もありません。何も店頭で変わることはありません。 'componentWillReceiveProps(nextProps)'の中で@A.R.Safari、 'console.log(nextProps)'を –

関連する問題