我正在将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选项。
那么如何根据先前选择的选项动态更改枚举字段?
答案 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} />