2016-10-07 11 views
0

これは曖昧な質問ですが、疑似コードで試してみましょう。私は親オブジェクト内の子オブジェクトの配列を作成した場合:子供の配列 - 更新しない状態

class Parent extends React.Component { 
    constructor() { 
     this.state = {kids: [<Child/>,<Child/>]}; 
    } 
    render() { 
     return <div>{this.state.kids[0]}{this.state.kids[1]}</div> 
    } 
} 
class Child extends React.Component { 
... 
} 

を私は子コンポーネント内の子にSETSTATEを行う場合は/それは親の子供の配列を変更する必要がありますでしょうか?私の考えは、その配列の要素はですので、子を変更すると要素を変更する必要があります。私の理解が間違っていますか?

答えて

0

親をトリガーする子の更新が発生したときに特定のコールバックが発生しない限り、親はその更新を取得しません。

これは、ほとんどのReact開発者がスマートでダムのコンポーネントパターンを採用した理由です。実際には、両方のコンポーネントで管理されている子供の状態を持つべきではありません。親コンポーネントは、その子に適用されるあらゆる種類の変更を処理し、それに応じて独自の状態を更新する子コンポーネントにコールバック関数を提供する必要があります。状態が更新されると、必要な部分を各子コンポーネントに渡します。小道具

あなたの目標は、コンポーネント全体に分散する状態の量を最小限に抑え、1つのコンポーネントで状態を管理し、残りの部分だけが小道具を受け取るようにすることです。素晴らしい記事は次のとおりです:http://jaketrent.com/post/smart-dumb-components-react/

関連する問題