如何根据先前选择的值更改下拉选项?

时间:2019-02-18 11:07:45

标签: reactjs react-native tcomb-form-native

我正在将tcomb软件包用于表单https://github.com/gcanti/tcomb-form-native,我有2个下拉列表,即我已经创建了2个枚举。现在第一个下拉列表,即枚举在下拉列表中有3个选项A,B,C。现在,如果用户从第一个枚举中选择选项A,则在且仅当从下拉列表中选择了选项A时,它才应显示P,Q,R作为第二枚举的这3个下拉选项。现在,如果选择了选项B,则第二个枚举应该选择选项X,Y,Z;如果从第一个枚举的下拉列表中选择了选项C,则应该显示L,M,N选项。

那么如何根据先前选择的选项动态更改枚举字段?

1 个答案:

答案 0 :(得分:0)

也许对其他人也有帮助。实现此目的的一种方法是使用状态中的tcomb变量,例如

this.state = {
  field1: t.enums({'A':'AA', 'B':'BB', 'C':'CC'},'field1'),
  field2: t.enums({},'field2')
}

let MyForm = t.struct({
  field1: this.state.field1,
  field2: this.state.field2
)}

,然后在onChange函数中,根据field1的值更改field2的下拉列表,如下所示:

onChange(value) {
 if (value.field1 == 'A')
  this.setState(field2: t.enums({'P':'PP','Q':'QQ','R':'RR'}, 'field2')
 else if (value.field1 == 'B')
 ...
}

最后,在渲染函数中编写:

<Form type={MyForm} onChange={this.onChange} />