工作笔记:Element-UI Dialog自定义组件点关闭按钮 报错:Avoid mutating a prop directly since the value will be overwr...

页面打开Dialog对话框,点击取消和确认正常,点击关闭按钮能关闭Dialog对话框,但是会报错。

修改之前的代码:

//父组件

<set-refund-withdraw
  v-if="withdrawDialogVisible"
  :visible.sync="withdrawDialogVisible">
</set-refund-withdraw>



//子组件

<el-dialog :close-on-click-modal="false" title="标题" :visible.sync="visible"></el-dialog>

props: {
    visible: {
      default: false,
    }
}

close() {
    this.$emit('update:visible', false)
}

报错:

解决方案:

使用 Dialog 对话框Attributes中before-close 劫持,调用$emit(‘update:visible’, false),点击关闭按钮Dialog就可以实现关闭且不报错。

修改后的代码:

//父组件

<set-refund-withdraw
  v-if="withdrawDialogVisible"
  :visible.sync="withdrawDialogVisible">
</set-refund-withdraw>



//子组件

<el-dialog :close-on-click-modal="false" title="标题" :visible.sync="visible" :before-close='close'></el-dialog>

props: {
    visible: {
      default: false,
    }
}

close() {
    this.$emit('update:visible', false)
}

这样操作就是在父组件修改 visible的值,就不会引发vue的报错了。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值