异步请求验证

Attention: asyncValidator 是1.11.0 才支持的,而我下文的结论源于我自己使用了1.8.0 的版本,故而失败,请知悉!!
参考github 项目:async-validator

// PROMISE USAGE
validator.validate({
  name: "muji",
  asyncValidator: (rule, value) => axios.post('/nameValidator', { name: value }),
}, (errors, fields) => {
  if(errors) {
    // validation failed, errors is an array of all errors
    // fields is an object keyed by field name with an array of
    // errors per field
    return handleErrors(errors, fields);
  }
  // validation passed
})
  .then(() => {
    // validation passed
  })
  .catch(({ errors, fields }) => {
    return handleErrors(errors, fields);
  })

如上readme 中一直说使用asyncValidator, 所以一直以为接收asyncValidator作为关键字,结果试了很久就是不行。其实还是使用validator关键字就行。具体使用如下就行…

使用定义
validatorFieldRule: [
          { required:true, validator: checkEmpty, trigger: "change"} ]
验证规则定义
var checkEmpty= (rule, value, callback) => {
      axios.get('/api/file').then( res => {
          callback();
      })
      .catch( err => {
          callback(err);
      })
    };
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐