您的位置:首页 > 教育 > 培训 > Antd - Form 表单提交onfinish函数不生效

Antd - Form 表单提交onfinish函数不生效

2024/10/6 10:40:43 来源:https://blog.csdn.net/Zong_0915/article/details/142173497  浏览:    关键词:Antd - Form 表单提交onfinish函数不生效

Antd - Form 表单提交onfinish函数不生效

  • 问题复现
  • 问题修复

问题复现

const onFinish: FormProps<InvoiceTitleInfo>['onFinish'] = (values) => {console.log(values);
}
const rules = [() => ({validator() {const address = form.getFieldValue('address') || '';if (!address) {return Promise.reject(new Error('请输入地址!'));}},}),
];<Form form={form} name="eidtInvoiceForm" onFinish={onFinish} autoComplete="off"><Item<InvoiceTitleInfo> label="地址" name="address" rules={rules}><Input /></Item><Item><Button htmlType="submit">保存</Button></Item>
</Form>

这里写了一个简单的表单,里面有个文本框代表地址,我们添加了Form的校验规则:

  • 地址不能为空,如果为空,效果如下:

在这里插入图片描述

但是如果我输入地址,然后点击保存:控制台什么都没输出,也就是onFinish函数没生效。
在这里插入图片描述

问题修复

如果是像我这样,自定义了校验规则,一定要有兜底的返回,例如:

const rules = [() => ({validator() {const address = form.getFieldValue('address') || '';if (!address) {return Promise.reject(new Error('请输入地址!'));}// 这里一定要有!!return Promise.resolve();},}),
];

结果如下:这个时候onFinish函数生效
在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com