如果存在两个兄弟组件A、B,需要在A组件点击一个按钮去校验B组件的表单验证,并获取B组件表单的数据。
实现步骤:
1、在B组件写一个方法:
changeSubmit() {
return new Promise((resolve) => {
this.$refs.form.validate(async (valid) => {
if (valid) {
resolve(this.form)
}
})
})
},
2、在A、B的父组件中写一个方法:
<A @getFormData='getFormData'/>
//获取表单的数据
async getFormData(callback) {
const res = await this.$refs.B组件.changeSubmit()
callback(res)
},
3、在A组件中通过emit
async approve() {
this.$emit('getFormData', (val) => {
console.log(val)
})
})
接收