vue3+element-plus 使用 v-model 报错,有什么其他的改法吗?

版本信息

"element-plus": "^2.3.6",
"vue": "^3.3.4",

报错信息

VueCompilerError: v-model cannot be used on a prop, because local prop bindings are not writable.
Use a v-bind binding combined with a v-on listener that emits update:x event instead.

报错代码

   |  <el-dialog
   |      v-model="show"
   |      ^^^^

根据上面的报错信息搜了一下,得到的原因大致如下:
image.png

但我觉得不应该这样改,因为 element-plus 文档上是支持 v-model 写法的

阅读 9k
4 个回答

element-plus文档错误率挺多的,不一定靠得住。

改完能work就行,有那个能力就去拉下element-plus的源码看看就知道问题具体出在哪儿了

新手上路,请多包涵

prop 是单向数据流,你这里只能用:model-value
除非你的 show 不是外部传入

element-plus的dialog确实是支持v-model,但是v-model是双向数据绑定,而props是单向数据流,不允许你直接修改父组件来的数据,所以你要执意使用v-model,那就把show拷贝一份在使用

新手上路,请多包涵

screenshots.gif

你好,经测试是没有问题的,你的业务代码或者其它导入ref 地方可能出了问题

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏