异步请求验证
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); }) };