2 回答
TA贡献1906条经验 获得超10个赞
测试了一下,父组件传递isShow给子组件,但是子组件的私有data dialogVisible并没有跟随isShow的变化而变化,所以你这边的watch是无法监听的。
但是可以通过computed属性来获取isShow的变化
computed:{
dialogVisible:function () {
return this.isShow
}
}
虽然有点明白题主的意思,代码实现如下你参考下:
export default {
name: "mychild",
props: {
isShow: {
type: Boolean,
default: false
}
},
data() {
return {
dialogvisible: false
}
},
watch: {
isShow: function (newval) {
this.dialogvisible = newval;
if (!this.dialogvisible) {
this.$emit("on-close", '我关闭了')
}
}
}
}
主要是在子组件中监听isShow这个变量,而不是监听dialogvisible 这个变量,因为你dialogvisible这个变量的数值 其实是isShow赋予的。
父组件
<mychild :isShow="val" @on-close="get"></mychild>
父组件监听$emit的事件。
添加回答
举报