Element UI version
2.15.7
OS/Browsers version
谷歌浏览器
Vue version
2.6.11
Reproduction Link
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?
控制台报错,对话框无法关闭
1条答案
按热度按时间ffdz8vbo1#
vuex内state的值变化,只能通过mutation来修改。因此visible.sync需要拆分语法糖为:visible=“dialogVisible” @update:visible="函数内commit修改dialogVisible"。或者看下element官网dialog组件,对此有说明和解决办法。