antd form dependencies 自动触发更新实例
时间: 2024-03-05 18:51:58 浏览: 354
如果您使用的是 Ant Design 的 Form 组件,您可以通过设置 getFieldDecorator 的第三个参数 options 来实现表单项之间的依赖关系。具体来说,options 中的 rules 属性可以接收一个数组,用于定义该表单项依赖的其他表单项的值,只要这些值发生变化,该表单项就会自动更新。例如:
```jsx
<Form.Item label="A">
{getFieldDecorator("a", {
rules: [
{
validator: (rule, value, callback) => {
if (value === getFieldValue("b")) {
callback("A 和 B 的值不能相同");
} else {
callback();
}
},
},
],
})(<Input />)}
</Form.Item>
<Form.Item label="B">
{getFieldDecorator("b")(<Input />)}
</Form.Item>
```
在上面的例子中,表单项 A 的规则中定义了一个 validator,用于检查 A 的值是否等于 B 的值,如果相等就会提示错误信息。这里的关键是在 validator 中使用了 getFieldValue 函数来获取表单项 B 的值,从而实现了 A 和 B 的依赖关系。当表单项 B 的值发生变化时,表单项 A 会自动更新,重新执行 validator,并根据新的 B 值来更新自己的状态。
阅读全文