如何解决Element UI el-dialog打开一次后无法再次打开问题

 更新时间:2024年02月29日 14:15:57   作者:大龄女程序员路在何方  
这篇文章主要介绍了如何解决Element UI el-dialog打开一次后无法再次打开问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Element UI el-dialog打开一次后无法再次打开

APP.vue

<template>
    <div>
        我是子组件
        <el-button type="primary" size="mini" @click="openA">打开ADialog</el-button>
        <ADialog :avisible="visible" :key="key">
        </ADialog>
    </div>
</template>
 
<script>
import ADialog from '@/components/ADialog'
export default {
    data() {
        return {
            visible:false,
            key:Math.random(100)*100
        };
    },
    components:{
        ADialog
    },
    methods:{
        openA(){
            this.key = this.key +1
            this.visible = true
        }
    }
}
</script>
 
<style>
 
</style>

ADialog.vue

<template>
  <div v-if="visable">
    <el-dialog
      title="我是Adialog"
      :visible.sync="visable"
      width="30%"
      @close="handlerClose"
    >
      <span>我要打开B了</span>
      <el-button   type="primary" size="default" @click="openB"
        >打开Bdialog</el-button
      >
 
      <span slot="footer">
        <el-button @click="visable = false">Cancel</el-button>
        <el-button type="primary" @click="handlerOK">OK</el-button>
      </span>
    </el-dialog>
    <BDialog :bvisable="bvisable" :key="key"></BDialog>
  </div>
</template>
 
<script>
import BDialog from "@/components/BDialog";
export default {
  props: ["avisible"],
  data() {
    return {
      visable: this.avisible,
      bvisable: false,
      key:Math.random(100)*100
    };
  },
  components: { BDialog },
  methods: {
    handlerClose() {
      this.visable = false;
    },
    handlerOK() {
      this.visable = false;
    },
    openB(){
        this.key = this.key+1
        this.bvisable = true
        this.$forceUpdate()
    }
  },
};
</script>
 
<style>
</style>

BDialog.vue

<template>
  <div v-if="visiable">
        <el-dialog
            title="我是Bdialog"
            :visible.sync="visiable"
            width="20%"
            @close="handlerClose">
            <span></span>
            <span slot="footer">
                <el-button @click="visiable = false">Cancel</el-button>
                <el-button  @click="ok">OK</el-button>
            </span>
        </el-dialog>
        
  </div>
</template>
 
<script>
export default {
    props:[
        "bvisable"
    ],
    data() {
        return {
            visiable: this.bvisable,
        };
    },
    methods:{
        handlerClose(){
            this.visiable = false
        },
        ok(){
            this.visiable = false
        }
 
    }
}
</script>
 
<style>
 
</style>

在引用子组件的过程中加上:key就是给每一个vnode的唯一id,新的dialog就可以展示出来

父组件dialog中加上

子组件的dialog中加上

子组件调用的过程中加上:key

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue.js实现备忘录功能的方法

    vue.js实现备忘录功能的方法

    下面小编就为大家带来一篇vue.js实现备忘录功能的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Vue实现多页签组件

    Vue实现多页签组件

    这篇文章主要介绍了Vue实现多页签组件的方法,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下
    2021-01-01
  • vue perfect-scrollbar(特定框架里使用非该框架定制库/插件)

    vue perfect-scrollbar(特定框架里使用非该框架定制库/插件)

    这篇文章主要为大家介绍了vue perfect-scrollbar在特定框架里使用一款并非为该框架定制的库/插件如何实现,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪<BR>
    2023-05-05
  • Vue3滑动到最右验证功能实现

    Vue3滑动到最右验证功能实现

    在登录页面需要启动向右滑块验证功能,遇到这样的需求怎么实现呢,下面小编通过示例代码给大家分享Vue3滑动到最右验证功能实现,感兴趣的朋友一起看看吧
    2024-06-06
  • Vue中使用 Echarts5.0 遇到的一些问题(vue-cli 下开发)

    Vue中使用 Echarts5.0 遇到的一些问题(vue-cli 下开发)

    这篇文章主要介绍了Vue中使用 Echarts5.0 遇到的一些问题(vue-cli 下开发),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Vue学习笔记之表单输入控件绑定

    Vue学习笔记之表单输入控件绑定

    本篇文章主要介绍了Vue学习笔记之表单输入绑定,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • vue中使用swiper失效问题及解决

    vue中使用swiper失效问题及解决

    这篇文章主要介绍了vue中使用swiper失效问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • 详解Vue Elementui中的Tag与页面其它元素相互交互的两三事

    详解Vue Elementui中的Tag与页面其它元素相互交互的两三事

    这篇文章主要介绍了详解Vue Elementui中的Tag与页面其它元素相互交互的两三事,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • vue之如何配置默认显示页面和默认路由

    vue之如何配置默认显示页面和默认路由

    这篇文章主要介绍了vue之如何配置默认显示页面和默认路由问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • vue2.0自定义指令示例代码详解

    vue2.0自定义指令示例代码详解

    指令通常以"v-"作为前缀, 以方便Vue知道你在使用一种特殊的标记。这篇文章主要介绍了vue2.0自定义指令的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04

最新评论