小编Jak*_*eee的帖子

Vue.js vuelidate:如何去抖动异步自定义验证器?

我有一个验证器,用于检查用户名是否已在数据库中注册。它工作正常,除了这样一个事实,即请求被发送到服务器并输入每个字符 - 这是经常的方式。所以我试图去抖动用户名变量值的设置,但我得到的是:

Uncaught TypeError: Cannot read property 'value' of undefined 
at a.NHnr.q.methods.debounceUsername.H.a.debounce.leading
Run Code Online (Sandbox Code Playgroud)

Vue 脚本:

import uniqueUsername from '../validation/uniqueUsername'
import _ from 'lodash'

export default {
    name: "signUpPage",
    data() {
      return {
        credentials: {
          username: ''
        }
      }
    },
    methods: {
      debounceUsername:
        _.debounce(function (e) {
          this.credentials.username = e.target.value;
        }, 200, {leading: false, trailing: true})
    },
    validations: {
      credentials: {
        username: {
          uniqueUsername: uniqueUsername
        }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

网址:

    <b-field :label="msg('usernameLabel')"
             :class="{ 'form-group--error': $v.credentials.username.$error }">
      <b-input size="is-large" type="text" class="form__input"
               icon="account" name="username" …
Run Code Online (Sandbox Code Playgroud)

javascript lodash vue.js vuelidate

5
推荐指数
2
解决办法
4277
查看次数

标签 统计

javascript ×1

lodash ×1

vue.js ×1

vuelidate ×1