シナリオ:フラックス ストア (非同期ロード) に状態がある反応アプリがあり、データをその子に渡すルート コンポーネントにデータを渡します。
現在: ノード ツリーのどこか深くにネストされているテキスト入力フィールドの初期値は、prop から getInitialState で実行され (prop は渡されています)、onChange イベントでその状態は型指定された値に設定されます。これまでの本の例。フォームを「送信」しましょう。アクションがトリガーされ、ajax 呼び出しが行われ、データが変更されて戻ってきて、ルート コンポーネントにイベントを発行するストアに渡され、ノード ツリーが再度レンダリングされますが、もちろん getInitialState はトリガーされません。フィールドには最後に入力された値が残っています。キーストロークごとに action-store-root-children-reRender ループ全体を開始したいとは思いませんよね?
質問:渡されたプロップ (ストアのもの) から入力の状態を新鮮にするにはどうすればよいですか?
考え:うーん、ROOT の componentWillUpdate() でストアの「フラグ」を設定してから componentDidUpdate() で設定し直すことで、ROOT から再レンダリングを開始するタイミングを実際に知ることができます。再レンダリングする ROOT インテントであるか、ストア以外で開始された単なる親の変更です。