在父组件引入子组件,子组件引入dialog是一个弹框。
- prop:[‘flag’]。
- 子组件是一个dialog弹框。
- 现在的效果是:刷新页面,第一次的弹框出现,将弹框关闭之后,再次点击,弹框不出现。 每次传递给子组件的flag值是一样,此时就不会触发子组件里面的 watch:{ flag: ‘changeFlag’ }
指定的changeFlag方法。
解决方法:
a.父组件初始化一个字段:openDetailDialog: false
b.通过以下方式传递给子组件
:open-detail-dialog=“openDetailDialog”
c.子组件接收:
从而触发watch对应的方法,
d. 关闭子组件弹框时需要注意:
给父组件一个事件:
e.父组件接收事件的方法里,对this.openDetailDialog的值取反,
此方式解决watch不生效的问题
加一个临时的变量,然后通过对其取反,来保证每一次watch监听的值与上一次不同,从而是watch事件生效。