vue子组件控制父组件v-show有时不起作用?

父组件有一个popup window:

<div v-show="popup">
...
</div>
...
popup: true;
...

子组件有两个listener,通过

this.$parent.popup=true;
this.$parent.popup=false;

控制父组件的popup window的显示与隐藏

此外,父组件还包括一个类似刷新页面的component

<router-link to="/">
</router-link>

但是会有极少数时候出现信息窗不显示的情况,但是listener是起作用了的。出现这个bug的原因和操作暂时还不明确

发现这个问题之后:
在子组件的改变this.$parent.popup的值前consol.log了一下

console.log(this);
console.log(this.$parent);

发现每次进行router-link操作过后,控制台打印的this和this.$parent都会增加一个

猜想:只有最后打印的this和this.$parent才起展示作用

初步怀疑:

  1. 是某个父组件增加了一个但是子组件并未增加,导致子组件控制的是之前父组件的popup
  2. 某个子组件被销毁了无法link到当前父组件的popup
  3. ......
阅读 1.8k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题