【bug】关于Vue封装el-dialog对话框关闭无反应问题

封装dialog弹窗,遇到个问题,关闭的时候,在弹窗内部关闭事件里写了控制弹窗开关的属性为false,结果关闭之后就再也打不开了

百度下,应该是弹窗无法自己关闭自己,通过$emit触发父组件中弹窗开关的属性为false就可以解决

1、父组件的子组件,:open=“invoiceSheet”,

    <InvoiceentryDialog
      ref="InvoiceentryDialog"
      :open="invoiceSheet"
    ></InvoiceentryDialog>

2、子组件接收open的值

 props: {
    // dialog显示隐藏
    open: {
      type: Boolean,
      default: false,
    },

  },

3、子组件data中

 data() {
    return {

      // // 弹窗开关
      invoiceSheet: this.open,
    };
  },

4、子组件watch

  watch: {
    open(newVal) {
      this.invoiceSheet = newVal;
    },
  },

5、子组件的dialog上,关键性的就是@close=“$emit(‘close-dialog’)”

    <el-dialog
      title="xxx"
      :visible.sync="invoiceSheet"
      @close="$emit('close-dialog')"
      :close-on-click-modal="false"
      width="80%"
      left
    >

6父组件的子组件上,关键性 @close-dialog=“invoiceSheet = false”

    <InvoiceentryDialog
      ref="InvoiceentryDialog"
      :open="invoiceSheet" 
      @close-dialog="invoiceSheet = false"
    ></InvoiceentryDialog>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值