0

我正在为表单使用 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 选项。

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

4

1 回答 1

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} />
于 2019-10-19T10:48:14.987 回答