vue两个组件用watch同时监听一个值的变化,只有一个组件触发,另一个没反应

//a.vue
watch:{
         interfaceControl() {
          let that = this;
          //点击空白清除航班信息弹框
          that.interfaceControl.mapFeatureIsSelectedEvent =                 state=> {
                        console.log(state)
              };
    },
 props:["interfaceControl"]
//b.vue
watch:{
         interfaceControl() {
          let that = this;
          //点击空白清除航班信息弹框
          that.interfaceControl.mapFeatureIsSelectedEvent =                state=> {
                        console.log(state)
              };
    },
 props:["interfaceControl"]

这个事件是document.click的时候触发的,但是只有a.vue能监听到变化,b.vue没反应。如果只单独存在a或者b两者都触发事件

阅读 6k
2 个回答

你确定 A B 两个组件都在页面上渲染了吗?可以提供一个 demo 看下。

你可以在各自的watch中打印,在你显示a组件的时候,b组件中的watch已经和a中的一块执行了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题