2016-04-20 20 views
0

コンポーネントがあり、その理由のためにcomponentDidUpdateがトリガーしているようです。これは子コンポーネントであり、状態はありません。 prevPropsthis.propsは完全に同じトリガリングですが、これには何らかの理由がありますか? props/stateに変更があった場合にのみアップデートを開始する必要がありますか?prevState/prevPropsがthis.state/this.propsと同じときにcomponentDidUpdateトリガーが発生する理由

答えて

1

更新が唯一の小道具/状態

ありませんが変更されると、トリガーVirtualDOMのすべてたびにレンダリングする反応すべき。しかし、それは実際のDOMで変更されたプロパティだけを更新します。あなたはshouldComponentUpdatePureRenderMixinまたはカスタムcomparationコードを使用することができることを避けるために

+0

ありがとう、ミックスインが推奨されなくなるのを避けたいです。私は今、 'shouldComponentUpdate'を使用していますが、prevProps''内のすべての物事がthis.props'あなたが参照してくださいかもしれ '中のものと同じであれば、私は考え出す上の問題が生じています - http://stackoverflow.com/q/36743571/1828637 – Noitidart

1

componentDidUpdate()は、親コンポーネントが再レンダリング(および新しい小道具に渡す)たびに発射されます。また、ステートフルなコンポーネントでは、setState()が起動されるたびにも発生します。

親コンポーネントの再レンダリングする場合this.props are exactly the same, componentDidUpdate」prevprops古いとは、() `まだ発射された場合でも。

反応がレンダリングサイクルに入るのを防ぐには、新しい小道具と古い小道具を比較できるshouldComponentUpdate()メソッドを実装する必要があります。

+0

ありがとうございました。私はあなたの解決策も受け入れたいと思っています。私は彼が下院議員を持っていたので、私は他を受け入れた。しかし、私は質問があります。私は今それを投稿します。あなたはこれを見てください - http://stackoverflow.com/q/36743571/1828637 – Noitidart

関連する問題