自定义validator callback逻辑没有写完,会导致form.validateFields (()=>{})根本就不会执行

17 篇文章 0 订阅
 <FormItem label="可申请范围">
                        {getFieldDecorator('canApplyScope', {
                            // valuePropName: "checked",
                            initialValue: undefined,
                            rules: [
                                {
                                    required: true, message: '请选择申请范围', whitespace: true,
                                    type: 'object',//用这个属性设置内建校验类型,默认是string。
                                    validator: (rule: any, value: Quota.FCycleValueMap, callback: any) => {
                                        console.log(996, value)
                                        if (!value) {  //一开始少了这一步,导致form.validateFields (()=>{})根本就不会执行
                                            callback('请选择申请范围')
                                        }
                                        else if (value && value.checkedList.length == 0) {
                                            callback('请选择申请范围');
                                        } else {
                                            callback()
                                            // return
                                        }

                                    }
                                },
                            ],
                        })(
                            <CheckGroup></CheckGroup>
                        )}
                    </FormItem>

调用的地方为

 function updateData(
    form: WrappedFormUtils,
    // whiteList: Global.CUserItem[],
    quto: Quota.FQuotaDetail,
  ) {
    console.log(form.validateFields)
    form.validateFields((errs, values) => {
//一开始validator逻辑没有写全,这里始终进不来
      if (errs) return;
      ConfirmModal({
        title: '数据编辑',
        content: '确认更新数据信息!',
        onOk: () =>
          new Promise(async resolve => {
            const ret = await dispatch({
              type: 'quota/updateQuotaDetail',
              payload: { ...quotaDetail, ...values, whiteList },
            });
            resolve();
            if (ret) {
              message.success('数据编辑成功!');
              getQuotaDetail();
            }
          }),
      });
    });
  }

以下所看内容给了指引

https://www.jianshu.com/p/adec74c4097a

关于antd 表单validateFields validateFieldsAndScroll方法不执行的一个可能原因

 

_执念__关注

0.242019.07.27 16:39:51字数 85阅读 1,870

在使用antd form组件的的validateFields或者validateFieldsAndScroll方法时如果它没有进入方法而是直接跳过了方法,那不妨看看自定义验证方法validator代码块里是否有某一条分支没有执行 callback 函数。官方规定:自定义校验 callback 必须被调用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值