在React中如何根据来自另一个元素

时间:2015-09-11 20:48:31

标签: forms reactjs

我正在使用React中的一个表单(为了这个问题的目的)有两个选择框。

我不能使用getInitialState,因为该组件已经在一段时间之前初始化了,并且他们警告不要基于道具更新状态。

这是基本结构:

<FormComponent>
  <SelectComponent /> <!-- select box 1 -->
  <SelectComponent default={defaultValue} /> <!-- select box 2 -->
</FormComponent>

当更新选择框1时,它会触发FormAction.fieldOneUpdated()事件。当底层商店更新并再次向下再次组件时,我可以访问一个值&#34;默认&#34;我想传递给选择框2并让它选择该选项,但如果他们想要更改它,仍然让用户更新它。只是使用道具似乎没有,因为选择字段可以改变道具。是否有一种干净的惯用React方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

在标准的React流程中,这非常简单。

首先,fieldOneUpdated方法应该更新状态。我们假设它更新了一个名为fieldOne的状态属性(例如this.setState({fieldOne:value})。

其次,由于状态已更新,控件将再次呈现。渲染第二个控件时,将其更改为

<Select Component default={this.state.fieldOne} />

无需手动更新道具或其他任何东西,标准流程将为您处理事情。