解决在注册的时点击两次才能成功的bug
按照教程方法来写会出现要点击两次才会注册成功
<input v-validator:input.required= "{ regex: /^[a-zA-Z]+\w*\s?\w*$/, error: '用户名要求以字母开头的单词字符' }" ... >
以这个为例 首先会先执行我们之前定义的 validator
指令 但是我们写的 register()
方法是异步执行导致会出现target.canSubmit
为undefined
register(e) {
this.$nextTick(() => {
const target = e.target.type === 'submit' ? e.target : e.target.parentElement
console.log(target.canSubmit);
...
})
},
所以目前我解决方案就是做利用setTimeout()
方法来解决
代码如下
register(e) {
setTimeout(()=>{
this.$nextTick(() => {
const target = e.target.type === 'submit' ? e.target : e.target.parentElement
if (target.canSubmit) {
this.submit()
}
})
},100)
},
大佬有什么更加好的方法可以写出来一起学习!