2016-09-27 19 views

答えて

1

ちょっと考えた後、わかりました。問題はrendercomponentWillMountより前に呼び出されていたため、子コンポーネントCommentsが最初の小道具でレンダリングされていたため、親コンポーネントが状態を設定したときに新しい小道具を受け取ることを子コンポーネントに知らせる必要がありました。このコードを子コンポーネントに追加しました:

componentWillReceiveProps: function(newProps){ 
     this.setState({comments: newProps.comments}) 
    }, 
+0

コンポーネント階層の2つの異なるレベルで、stateと同じデータを表すべきではありません。最高レベルの状態として維持され、小道具として渡されるべきである。あなたの子コンポーネントはthis.props.commentsとしてこのデータを参照する必要があります。さもなければ、あなたは慣用的な反応ではないこのデータの真理の2つの情報源を持っています。 – John

+1

@ジョンオハイオ州のありがとう、それは大きなポイントです、私はリファクタリングを行うでしょう。 –

+0

子コンポーネントが責任を負う場合、遅い小道通過を待っていないので、必要ではないと書いてもらえませんか? – Femtosecond

関連する問題