VueJS 2:vee-validate 3 - 子组件的验证不起作用

VueJS 2: vee-validate 3 - validation for child components not working

vee-验证版本:3.4.5

所以我有一个 FormBuilder.vue 组件,它基于我的表单输入模式构建。我有一个自定义的 InputSlugify 组件,我想使用所需的规则对其进行 vee-validate 验证。

问题:当我聚焦输入并离开焦点时,我没有收到错误消息“需要字段”。但是当我直接使用 <b-form-input> 组件时它会起作用。 (if field.type === 'text')

如何让自定义组件的验证生效?

提前致谢!

这是一个有效的 codesandbox 示例

https://codesandbox.io/s/mystifying-frost-3yidg?file=/src/components/InputSlugify.vue

您需要 emit 来自自定义组件的 blur 事件,因为 vee-validate 无法在包装组件中获取事件,除非您明确发出它。

<b-form-input @blur="$emit('blur')" ... />

默认 b-form-input 已经发出此事件,这就是它直接使用它的原因。