私は、容器内に2つの兄弟構成要素RegionsDropdownComponent
とCitiesDropdownComponent
を持っています。UpdateProfileFormComponent
render()が明示的なsetState()呼び出しによって呼び出されたか、または親コンポーネントがそれに小道具を渡したかどうかを調べる方法は?
オンスタートでは、UpdateProfileFormComponent
は(サーバーから事前に取得された)プロファイルデータを保持しています。プロファイルの領域は小道具としてRegionDropdownComponent
に渡され、地域と都市は両方ともCitiesDropdownComponent
に渡されます。
CitiesDropdownComponent
の範囲内で、地域は都市ドロップダウンをフィルタリングするために使用され、ドロップダウンは地域に属する都市のみを反映し、都市は都市入力フィールドを設定するために使用されます。 CitiesDropdownComponent
のrender()
の方法では、そのprops.region
とprops.city
が使用されます。ユーザーがRegionsDropdownComponent
から別のオプションを選択したとき
多くはである何、そして親UpdateProfileFormComponent
でhandleChange()
はUpdateProfileFormComponent
は、その都市がドロップダウンしても、設定し直すどのフィルタ、CitiesDropdownComponent
に選択した領域と空の文字列の小道具を通過するようにthis.setState()
を呼ぶだろう都市入力を空にする。
これまでのところとても良いです。
今では代理店のドロップダウンをフィルタリングし、代理店の入力フィールドをリセット/設定するRegionsDropdownComponent
に依存するでから独立しているがCitiesDropdownComponent
に似ている第三兄弟AgenciesDropdownComponent
もあります。 は、ユーザーが都市ドロップダウンから別のオプションを選択したとき、私はthis.setState({city:selected_option_value})
を呼ぶだろうCitiesDropdownComponent
でhandleChange()
方法をご希望の、CitiesDropdownComponent
に戻って...しかし、その後CitiesDropdownComponent
のrender()
はすでにprops
の代わりthis.state
を使用しています。
これら2つの相反する要件を調整する方法を教えてください。
'render()'はそれについて知っているべきではありません。 –
componentWillRecieveProps()が呼び出された場合、親を渡す小道具のためにレンダリングが行われています。 setStateはこのライフサイクルメソッドを呼び出さない –