登录
首页 >  文章 >  前端

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

时间:2024-12-21 22:07:09 144浏览 收藏

推广推荐
免费电影APP ➜
支持 PC / 移动端,安全直达

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是文章学习者,那么本文《如何解决自定义弹窗 visible prop 控制可见性失效的问题? 》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!

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

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

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

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

修改后的 dialog 组件代码:

<template>
  <div v-if="visibleMe">
    <!-- 内容 -->
  </div>
</template>

<script>
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 的更新
    },
  },
};
</script>

修改后的工作原理:

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

理论要掌握,实操不能落!以上关于《如何解决自定义弹窗 visible prop 控制可见性失效的问题? 》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>