2017-01-18 21 views
0

これは簡単な質問ですが、ここにあります:小道具が変わったときにコンポーネントに再レンダリングを指示する方法はありますか?私は自分のコンポーネントをreduxストアに接続しています。これは特定のアクションで状態を更新します。その状態が次に小道具に絞り込まれます。その時点で、アプリケーションは変更に対応します。小道具のコンポーネントを再レンダリングする

componentDidUpdate()とお考えですか?

のような何か:

// ... 
componentDidUpdate(prevProps, prevState) { 
    if (prevProps !== this.props) { 
     // re-render x <-- not sure how to do this 
    } 
} 

プラス何が全体コンポーネントを再レンダリングする方法だろう、と何が再レンダリングをのみ更新小道具の方法だろうか?

助けてください。

+2

小道具の詳細について質問を更新できますか?手動で呼び出す必要なしに、コンポーネントを変更すると、コンポーネントが再び「自動的に」レンダリングされるはずです。 https://github.com/reactjs/redux/issues/585#issuecomment-133028621を参照して、 –

答えて

0

このメソッドではthis.forceUpdate()を呼び出すことができます。別の方法はthis.setState(this.state)です。あなたの小道具は、あなたが無限ループを取得する状態を変更する必要がある何かである場合

3

あなたは

componentWillReceiveProps (props){ 
this.doSomething(props) // To some function. 
this.setState({data: props}) // This will update your component. 
} 

を使用することができます。

チェックアウト方法ライフサイクルhereに反応しますが、それも役立ちます。

+1

の 'componentWillReciveProps' - >' componentWillReceiveProps'に役立つかどうか確認してください。 変更するには、編集に最低限の文字列が必要です。 – jhrr

+1

@jhrr thanks thanks :) – Modig

関連する問題