求助:Vue项目,执行npm i之后,项目可以运行,但是打开某些页面报错,提示v-model要改成:model


这是错误截图,项目在别人的苹果电脑上正常使用,但是我在我的windows电脑上搭建好,npm i之后,可以正常npm run serve,但是个别页面点击就会出现以上问题,需要将报错位置的v-model改成:model才可以访问页面。
实在没有办法了,求助各位大佬

错误提示是说,detailVisible 是当前组件的 prop,在当前组件内是只读的,而 v-model 要求可写,所以你不能把 detailVisible 用作 v-model 的值。改成 :model 后实质上相当于传递这个 detailVisible 给一个名为 model 的 prop,语法上没问题,自然就不报错了。

这种用法在任何环境下都是有问题的,因为这是 Vue 的要求,跟运行环境无关。你在别人的电脑上没看到报错,有可能是对方代码不一样,有可能是对方环境里屏蔽了报错信息。

如果你一定要使用 detailVisible 实现 v-model 的效果,可以写成这样:

<el-dialog :model="detailVisible" @update:modelValue="$emit('xxx', $event)">

注:那个 xxx 是当前组件申请修改 detailVisible 时需要的事件名,具体的值取决于组件的定义。

1 Like

好的,非常感谢,我也是刚接触vue,基础知识都不全呢,上来就遇到这种问题,比较懵,我去问下写这些代码的人,看下他是否做了屏蔽操作,再次感谢,祝您新年快乐