1 回答
TA贡献1821条经验 获得超6个赞
你可以使用onValuesChange
来自 antd 的Form Api来检查字段内容是否为空。
const onValuesChange = (changedValues, allValues) => {
const anyUser = allValues.user
? Object.values(allValues.user).filter(Boolean).length > 0
: false;
setUserRequired(anyUser);
const anyOtherItem = allValues.otherItem
? Object.values(allValues.otherItem).filter(Boolean).length > 0
: false;
setOtherItemRequired(anyOtherItem);
};
useState然后您可以通过 reacts钩子将结果传递给rules表单项。
const [userRequired, setUserRequired] = useState(false);
示例表单项:
<Form.Item
name={["user", "name"]}
label="Name"
rules={[
{
required: userRequired
}
]}
>
最后但同样重要的是,您必须在任何更改时验证表单字段:
useEffect(() => {
form.validateFields();
});
这是您的工作CodeSandBox。
也可以在文档中找到动态 Antd 规则的一个很好的示例。
添加回答
举报