Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js vee validate-从父级验证子组件_Vue.js_Vee Validate - Fatal编程技术网

Vue.js vee validate-从父级验证子组件

Vue.js vee validate-从父级验证子组件,vue.js,vee-validate,Vue.js,Vee Validate,我使用的是vee validate 3.x我想从父组件验证子组件中包含的表单 父母亲 步骤2 儿童(第一步) {{错误[0]} 这里是问题的最低代码复制 我在执行validateStep时遇到了这个错误 [Vue warn]:v-on处理程序中出现错误:“TypeError:this.$refs[ref]。验证不是函数” 问题: 我感觉问题与ref有关,我一直在四处寻找,但没有找到解决方案。您的父验证功能如下所示: validateStep(ref) { return this.

我使用的是
vee validate 3.x
我想从父组件验证子组件中包含的表单

父母亲

步骤2

儿童(第一步)

{{错误[0]}
这里是问题的最低代码复制

我在执行validateStep时遇到了这个错误

[Vue warn]:v-on处理程序中出现错误:“TypeError:this.$refs[ref]。验证不是函数”

问题:
我感觉问题与
ref
有关,我一直在四处寻找,但没有找到解决方案。

您的父验证功能如下所示:

validateStep(ref) {
  return this.$refs[ref].validate();
}
validateStep(ref) {
  return this.$refs[ref].$refs[ref].validate();
}
如果它看起来像这样,它就会工作:

validateStep(ref) {
  return this.$refs[ref].validate();
}
validateStep(ref) {
  return this.$refs[ref].$refs[ref].validate();
}
验证函数附加到子组件的实际输入,而不是子组件本身。因此,第一个
$refs[ref]
让您进入
firstStep.vue
,组件,第二个
$refs[ref]
让您进入
firstStep.vue
中的内部输入。另外,在您的代码笔中,您在
firstStep.vue
中拼写错误了
ref=“firtStep”
,因此这没有帮助


我觉得最好让
firstStep
表单验证跟踪它自己的状态,并在表单处于有效状态时发出事件。这样,如果表单中有10个字段,则父项不需要知道关于它们的任何信息,只需要知道它们是否有效。

您的父项验证函数如下所示:

validateStep(ref) {
  return this.$refs[ref].validate();
}
validateStep(ref) {
  return this.$refs[ref].$refs[ref].validate();
}
如果它看起来像这样,它就会工作:

validateStep(ref) {
  return this.$refs[ref].validate();
}
validateStep(ref) {
  return this.$refs[ref].$refs[ref].validate();
}
验证函数附加到子组件的实际输入,而不是子组件本身。因此,第一个
$refs[ref]
让您进入
firstStep.vue
,组件,第二个
$refs[ref]
让您进入
firstStep.vue
中的内部输入。另外,在您的代码笔中,您在
firstStep.vue
中拼写错误了
ref=“firtStep”
,因此这没有帮助


我觉得最好让
firstStep
表单验证跟踪它自己的状态,并在表单处于有效状态时发出事件。这样,如果表单中有10个字段,则父级不需要知道关于它们的任何信息,只需要知道它们是否有效。

您是否介意详细介绍如何使用veeValidate从子组件发出验证状态。感谢您是否介意详细介绍如何使用veeValidate从子组件发出验证状态。谢谢