我正在使用React中的一个表单(为了这个问题的目的)有两个选择框。
我不能使用getInitialState,因为该组件已经在一段时间之前初始化了,并且他们警告不要基于道具更新状态。
这是基本结构:
<FormComponent>
<SelectComponent /> <!-- select box 1 -->
<SelectComponent default={defaultValue} /> <!-- select box 2 -->
</FormComponent>
当更新选择框1时,它会触发FormAction.fieldOneUpdated()事件。当底层商店更新并再次向下再次组件时,我可以访问一个值&#34;默认&#34;我想传递给选择框2并让它选择该选项,但如果他们想要更改它,仍然让用户更新它。只是使用道具似乎没有,因为选择字段可以改变道具。是否有一种干净的惯用React方法来实现这一目标?
答案 0 :(得分:0)
在标准的React流程中,这非常简单。
首先,fieldOneUpdated方法应该更新状态。我们假设它更新了一个名为fieldOne的状态属性(例如this.setState({fieldOne:value})。
其次,由于状态已更新,控件将再次呈现。渲染第二个控件时,将其更改为
<Select Component default={this.state.fieldOne} />
无需手动更新道具或其他任何东西,标准流程将为您处理事情。