antd Modal中表单验证

在AntDesign的Modal组件中,通过onOk属性定义点击确定后的回调函数,执行表单校验。如果校验成功,显示加载图标并提交信息;失败则保持Modal打开并提示错误。利用Promise处理异步操作,成功时显示通知,失败则重新显示Modal并捕获错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Ant Design的Modal组件中,onOk属性是一个点击确定按钮后的回调函数。在使用Modal组件时,可以通过定义onOk属性来指定点击确定按钮后的操作。在给Modal组件传递onOk属性时,可以传递一个函数作为参数,该函数将在点击确定按钮后被调用。在给Modal组件传递onOk属性时,可以使用箭头函数或普通函数来定义回调函数。在回调函数中,可以执行一些操作,比如打印信息或修改组件的状态

场景:实现一个点击Modal确认按钮进行表单校验,按钮显示加载图标,校验成功提交信息,校验不成功,Modal不关闭,进行表单错误提示。

问题:Modal在点击确认后关闭

解决:

onOk: async () => {
        return new Promise((resolve, reject) => {
          setUpdateLoading(true) // 提交按钮显示提交中
          form.validateFields().then(values => {
                const {params} = form.getFieldsValue() 
                setUpdateDisable(true)
                // 请求校验参数值
                request(api, params, {
                  success: (res) => {
                    notification.notice({
                      id: new Date(),
                      type: 'success',
                      title: intl.formatMessage({id: 'Success'}),
                      content: '提交成功',
                      iconNode: 'icon-correct-s',
                      duration: 5,
                      closable: true
                    })
                    refresh && refresh()
                  },
                  complete: (res) => {
                    setUpdateDisable(false)
                    setUpdateLoading(false)
                    resolve()
                  },
                  failed: (e) => {
                    reject(e)
                  }
                })
              }
          ).catch(e => {
            setUpdateLoading(false)
            thisModal.update({
              visible: true
            })
            return reject(e)
          })
        })
      },
      confirmLoading: updateLoading

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值