0
 Schema.model({
    field1: StringType(),
    field2: StringType(),
    field3: StringType()
    })

return (
 <Form
            model={model}
          >
<FormControl name="field1" />
<FormControl name="field2" />
<FormControl name="field3" />
</Form>
)

如何设置field2field3到必填字段?

我想要做的是什么时候field等于jake并且将是必需field2的。field3但是当它不等于时,jake它就不需要了。

我尝试使用onChangeon thefield1但它不起作用。我也尝试了addRulein field2&field3但它也不起作用。

addRule((value, data) => { 
 if (data.field1 ==='jake') {
 return true;
} return false;
}

StringType().isRequired('Required field')当 field1 中的值为 jake 时,我想在 field2 和 field3 中应用它。

4

2 回答 2

1

听起来像是渲染周期的问题。确切地说,您是如何实现在更改时更改所需属性的?你需要通过一个状态变量来做到这一点,以便 react 知道在它发生变化时重新渲染。

于 2021-07-08T11:32:39.060 回答
1

添加规则对我来说看起来是正确的,但如果它不起作用,也许在你的 JSX 中试试这个:

  {this.state.field1 === 'jake'?
        <FormControl name="field2" required/>
        <FormControl name="field3" required/>
       :
       <FormControl name="field2" />
        <FormControl name="field3" />

和现场 onChange={e => this.setState({field1: e.target.value})}

注意:我不确定这是否是最佳方式,但它应该有效。

于 2021-07-08T11:16:20.940 回答