开发者问题收集

Vuelidate vue.js 最新版本适用于 vue3,使用 helpers.forEach 方法处理对象数组

2021-09-05
2738

使用 Vuelidate vue.js 最新版本的 vue3,使用 helpers.forEach 方法处理对象数组。我尝试运行表单,但验证导致出现以下错误

Gives $response.$errors is undefined in the console Uncaught (in promise) TypeError: $response.$errors is undefined

export default {
  setup () {
    const rules = {
      collection: {
        $each: helpers.forEach({
          name: {
            required
          }
        })
      }
    }
    const state = reactive({
      collection: [
        { name: '' },
      ]
    })
    const v = useVuelidate(rules, state)
    return { v, state }
}
}

这是代码模板

<div
    v-for="(input, index) in state.collection"
    :key="index"
    :class="{
        error: v$.collection.$each.$response.$errors[index].name.length,
      }"
  >
    <input v-model="input.name" type="text" />
    <div
      v-for="error in v$.collection.$each.$response.$errors[index].name"
      :key="error"
    >
      {{ error.$message }}
    </div>
  </div>
</template>
2个回答

有点晚了,但您在模板中引用的是 v$.collection ,而不是 v.collection 。在您的设置中,您返回的是 v ,而不是 v$

moeses
2022-01-26

我需要使用 v$,因为 v$ 代表基于 useVuelidate 的全局变量

iamcoder
2022-04-16