Nuxt 2 和 Vuelidate 2 无法正常工作

OG *_*bby 5 vue.js vuejs2 nuxt.js vuelidate vue-composition-api

我已经安装了 vuelidate 2 来验证 NuxtJS 项目中的表单。我按照vuelidate 文档的安装和设置说明进行操作。这是我的安装文件到目前为止的样子:

包.json

"dependencies": {
"@nuxtjs/axios": "^5.13.6",
"@vue/composition-api": "^1.6.1",
"@vuelidate/core": "^2.0.0-alpha.41",
"@vuelidate/validators": "^2.0.0-alpha.29",
"core-js": "^3.19.3",
"nuxt": "^2.15.8",
"vue": "^2.6.14",
"vue-server-renderer": "^2.6.14",
"vue-template-compiler": "^2.6.14",
"vuelidate": "^0.7.7",
"webpack": "^4.46.0"
},
Run Code Online (Sandbox Code Playgroud)

@vue/composition-api的plugins/composition-api.js

import Vue from 'vue'
import VueCompositionAPI from '@vue/composition-api'
Vue.use(VueCompositionAPI)
Run Code Online (Sandbox Code Playgroud)

插件/vuelidate.js

import Vue from 'vue'
import Vuelidate from 'vuelidate'   
Vue.use(Vuelidate)
Run Code Online (Sandbox Code Playgroud)

nuxt.config.js

plugins: [
{ src: '~/plugins/composition-api.js' },
{ src: '~/plugins/vuelidate' },
],
Run Code Online (Sandbox Code Playgroud)

组件/form.vue

<template>
<form @submit.prevent="submitForm">
  <div>
    <label for="name">Name:</label>
    <input v-model="name" type="text" name="name" />
  </div>

  <button>Submit</button>
</form>
</template />

<script>
import useVuelidate from '@vuelidate/core'
import { required } from '@vuelidate/validators'
export default {
  setup() {
    return { v$: useVuelidate() }
  },
  data() {
    return {
      name: '',
    }
  },
  methods: {
    submitForm() {
      this.v$.$validate().then((isFormValid) => {
        if (isFormValid) {
          console.log('valid!!!', this.$v)
        } else {
          return console.log('false', this.$v)
        }
      })
    },
  },
  validations() {
    return {
      name: {
        required,
      },
    }
  },
}
</script>
Run Code Online (Sandbox Code Playgroud)

以下是发生的几个问题:

  1. 当我放入v-if="v$.name.$error"模板内时,出现错误Cannot read property 'name' of undefined
  2. 当我调用submitForm方法时,验证isFormValid工作正常。当我打开控制台观察$v.errors$v.dirty或 时$v.invalid,我在数组中看到以下错误:

[Exception: RangeError: Maximum call stack size exceeded at Watcher.depend (webpack-internal...