如何解决自定义弹窗 visible prop 控制可见性失效的问题?

如何解决自定义弹窗 visible prop 控制可见性失效的问题?

如何控制自定义弹窗的可见性?

您在使用 dialog 组件时遇到了一个问题,即通过 visible prop 控制可见性。您在使用 v-if=”visibleMe” 方式打开和关闭弹窗,但在关闭时将 visibleMe 设置为 false 不会触发监听 visible 的 watch。

解决方法是仅修改 dialog 组件的代码,具体如下:

修改后的 dialog 组件代码:

  
export default { props: { visible: Boolean, }, data() { return { visibleMe: this.visible, // 初始化 visibleMe 与 visible 相同 }; }, watch: { visible(newVal) { this.visibleMe = newVal; }, }, methods: { closeDialog() { this.visibleMe = false; this.$emit('update:visible', false); // 手动触发 visible prop 的更新 }, },};

登录后复制

修改后的工作原理:

在构造函数中,将 visible 复制到 visibleMe 进行初始化。在 closeDialog 方法中,我们手动触发 visible prop 的更新,这是必需的,因为 visibleMe 的更改不会触发 watch。

以上就是如何解决自定义弹窗 visible prop 控制可见性失效的问题?的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2803365.html

(0)
上一篇 2025年3月8日 21:40:37
下一篇 2025年3月8日 21:40:43

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论