如何解决如何根据反应中的field1值将field2和field3设置为required
Schema.model({
field1: StringType(),field2: StringType(),field3: StringType()
})
return (
<Form
model={model}
>
<FormControl name="field1" />
<FormControl name="field2" />
<FormControl name="field3" />
</Form>
)
如何将 field2
和 field3
设置为必填字段?
我想要做的是,当 field
等于 jake
时,需要 field2
和 field3
。但是当它不等于 jake
时,则不需要。
我尝试在 onChange
上使用 field1
但它不起作用。
我还尝试了 addRule
和 field2
中的 field3
但它也不起作用。
addRule((value,data) => {
if (data.field1 ==='jake') {
return true;
} return false;
}
当 field1 中的值为 jake 时,我想在 field2 和 field3 StringType().isrequired('required field')
中应用它。
解决方法
添加规则对我来说是正确的,但如果它不起作用,也许在你的 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})}
注意:我不确定这是否是最佳方式,但应该可行。
,听起来像是渲染周期的问题。确切地说,您是如何在更改时更改所需属性的?你需要通过一个状态变量来完成它,以便当它改变时反应知道重新渲染。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。