element [Bug Report] el-dialog对话框的visible.sync使用vuex时,无法关闭遮罩

kq0g1dla  于 5个月前  发布在  其他
关注(0)|答案(1)|浏览(45)

Element UI version

2.15.7

OS/Browsers version

谷歌浏览器

Vue version

2.6.11

https://codepen.io/ziyoung/pen/LKNBqB

Steps to reproduce

没有重现链接,正常使用el-dialog时给visible属性的值都是data中定义好的,现在有一个对话框需要全局使用,便在vuex中定义了一个变量 'dialogVisible' 来控制显示隐藏,多个页面都有按钮,通过vuex中的commit修改dialogVisible变量,对话框正常弹出显示,但是却无法关闭,控制台报错:[Vue warn]: Error in v-on handler: "TypeError: Cannot set property dialogVisible of # which has only a getter",TypeError: Cannot set property dialogVisible of # which has only a getter

What is Expected?

像正常使用时一样的效果

What is actually happening?

控制台报错,对话框无法关闭

ffdz8vbo

ffdz8vbo1#

vuex内state的值变化,只能通过mutation来修改。因此visible.sync需要拆分语法糖为:visible=“dialogVisible” @update:visible="函数内commit修改dialogVisible"。或者看下element官网dialog组件,对此有说明和解决办法。

相关问题