2016-04-17 11 views
1

親子コンポーネント間の通信のベストプラクティスを知りたいと思います。私は通信とコンポーネントの状態についてこのblogpostを読んでいますが、私の問題の正解は見つかりませんでした。子コンポーネントのデータモデル

以下の成分が考慮されます。 私の親コンポーネントは、親コンポーネント内のオブジェクトからいくつかのタスク(子コンポーネント)をレンダリングするListです。

だから私の質問は以下のとおりです。

  1. 各タスクのコンポーネントにオブジェクトを渡すことがベストプラクティスですか?
  2. タスクコンポーネントで値が変更された場合、親コンポーネントはこれについてどのように知っていますか?親はすべての子どもの情報を知っておく必要があるからです。

これは正しいパターンですか?

私はレンダリング機能でこれを持って私の親コンポーネントで

:入力フィールドの値が変更される場合は、

render() { 
    return (
     <input type="text" name="wunsch" defaultValue={this.props.task.title}/> 
); 
} 

そう:

<Task key={index} taskdata={taskobj} /> 

は私のタスクの子コンポーネントは次のようになります親コンポーネントのtaskobjも変更されますか?この例では、しかし、ここで正しいパターンは何でしょうか?

+0

問題のコード例を提供できますか? – iofjuupasli

答えて

1

親から子に情報を渡す場合は、propsを使用します。子から親に情報を渡す場合は、子に関数を渡してpropとし、親を更新する必要があるときに呼び出します。 。

また、あなたが見Refluxを取ることができ、よりofficial docs

で読むことができます。

+0

子情報が変更されたときに親コンポーネントの情報が自動的に更新される方法はありますか? 「状態」メカニズムと同様? – JGM

+0

重要なリアクションコンセプトは、一方向データフローアーキテクチャを提供することです。いくつかのライブラリを使用して双方向バインディングを作成することができます。私はhttps://github.com/reflux/refluxjsを見てみることをお勧めします。アクションを作成し、このアクションに多くのコンポーネントを登録することができます。このアクションを呼び出すと、すべてが更新されます。 –

1

でが反応ReactJSフラックスに触発された単方向データフローアーキテクチャの シンプルなライブラリは、データは片道

私はこのリアクトコンセプトの、本当に知らなかった流れ。 ReactJS Docでlinkを読んだ後、ReactLinkは既に廃止されているので、私はonChange/setState()の方法に決めました。

したがって、モデルの変更が子コンポーネントで発生した場合、私は親コンポーネント内のメソッドを呼び出して自分のデータを更新(setState)します。

関連する問題