自定义功能组件中的 VueJS Vee-validate
VueJS Vee-validate in Custom Functional Components
我正在尝试验证自定义功能组件的值,但 vee-validate 似乎忽略了它。该字段既没有出现在字段列表中,也没有出现在错误列表中。
功能组件(简化):
const noop = () => {};
export const TextField = {
name: 'TextField',
functional: true,
props: {
value: {},
name: {}
},
render(h, {props, listeners}) {
let options = { rows: 5 }
options['class'] = 'Field'
options['name'] = props.name
const onChange = listeners['change'] || noop;
const onInput = listeners['input'] || noop;
return h('textarea',{
domProps: {value: props.value},
attrs: options,
on: {
change: (event) => {
onChange(event)
},
input: (event) => {
console.log('input on-input',event)
onInput(event.target.value)
}
}
},[])
}
};
父调用:
<text-field v-model="form.note.text" name="text" v-validate="'required'"></text-field>
v-model 有效并且父表单数据已更新,但 vee-validate 似乎无法识别该组件。是不是因为它是功能组件,不支持$watchAPI?如果可能的话,我希望它是 textarea 的一个简单包装器,而不是一个完整的组件。
- VueJS:2.6.11
- Vee-验证:2.2.15
vee-validate v2 不适用于功能组件,因为它需要访问 Vue 的组件实例 $watch
和少数其他 API。
我认为没有解决办法
我正在尝试验证自定义功能组件的值,但 vee-validate 似乎忽略了它。该字段既没有出现在字段列表中,也没有出现在错误列表中。
功能组件(简化):
const noop = () => {};
export const TextField = {
name: 'TextField',
functional: true,
props: {
value: {},
name: {}
},
render(h, {props, listeners}) {
let options = { rows: 5 }
options['class'] = 'Field'
options['name'] = props.name
const onChange = listeners['change'] || noop;
const onInput = listeners['input'] || noop;
return h('textarea',{
domProps: {value: props.value},
attrs: options,
on: {
change: (event) => {
onChange(event)
},
input: (event) => {
console.log('input on-input',event)
onInput(event.target.value)
}
}
},[])
}
};
父调用:
<text-field v-model="form.note.text" name="text" v-validate="'required'"></text-field>
v-model 有效并且父表单数据已更新,但 vee-validate 似乎无法识别该组件。是不是因为它是功能组件,不支持$watchAPI?如果可能的话,我希望它是 textarea 的一个简单包装器,而不是一个完整的组件。
- VueJS:2.6.11
- Vee-验证:2.2.15
vee-validate v2 不适用于功能组件,因为它需要访问 Vue 的组件实例 $watch
和少数其他 API。
我认为没有解决办法