一、背景
新拉代码,开发新页面使用el-date-picker组件,加载此组件控制台就报错,但同事在同一套代码里面使用未报错。
报错信息:Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "placement"
二、 报错场景
1.代码
<template>
<div>
<el-date-picker
v-model="dateRange"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
</template>
<script>
export default {
data() {
return {
dateRange: ""
}
}
}
</script>
2.报错
三、原因分析
- 查看package.json里element-ui的版本号
"element-ui": "^2.15.8"
- 查看node_modules\element-ui\package.json 里
"version": "2.15.9"
结论:查询资料,得出2.15.7、2.15.9都有此问题可换成2.15.8或者之前的版本。 新拉代码下依赖的时候下载了element-ui 2.15.x的最新版本2.15.9,而同事之前下依赖的时候最新版本是2.15.8,所以同一套代码他的未报错,我的报错了。
四、问题解决
修改版本解决
- npm uninstall element-ui
- npm install element-ui@2.15.8 -s
补充小知识
- 指定版本:比如"vue": “2.15.2”,表示指定安装2.15.2的版本
- 波浪号~ 指定版本:比如 “vue”: “~2.15.2”,表示安装2.5.x的最新版本(不低于2.15.2),但是不安装2.16.x,也就是说安装时不改变大版本号和次要版本号
- 指定版本:比如 “vue”: “^2.15.2” ,表示安装2.5.2及以上的版本,但是不安装3.0.0,也就是说安装时不改变大版本号