ant-design组件库form表单如何进行异步校验

发布于 2022-09-11 15:10:44 字数 533 浏览 22 评论 0

问题描述

ant-design组件库form表单如何进行异步校验

问题出现的环境背景及自己尝试过哪些方法

我用的是redux,内部没有维护state,我用的是onvalueschange,mapPropsToFields那一套东西,之后,我现在想把一个shopid在输入完blur之后发起ajax请求,然后等待返回值回来的时候去触发callback(new Error(''))显示红字的这种,我用了promise去return一个值(也用了async,await)回来进行判断然后输出callback,但是callback上面和下面的console都能打出来,唯独这个callback显示不在页面,还有就是我其他的表单项,当我点击提交,总体校验的时候,也不显示那些callback的提示红字

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

你期待的结果是什么?实际看到的错误信息又是什么?

我希望能够进行校验(异步同步都要),自从我用了onvalueschange,mapPropsToFields之后,校验就不好使了

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

晨曦÷微暖 2022-09-18 15:10:44

antd 的From的 validator 采用的是async-validator

这个组件本来就支持ajax校验:

const fields = {
  asyncField:{
    validator(rule,value,callback){
      ajax({
        url:'xx',
        value:value
      }).then(function(data){
        callback();
      },function(error){
        callback(new Error(error))
      });
    }
  },
 
  promiseField:{
      validator(rule, value){
        return ajax({
          url:'xx',
          value:value
        });
      }
    }
};
ぇ气 2022-09-18 15:10:44

请问你这些东西是直接写在类似下面这个部分的吗
clipboard.png

晚风撩人 2022-09-18 15:10:44

只会执行一次

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文