Element-ui的date日期时间组件的bug 报错:prop’s value. Prop being mutated: “placement”
今天本来想用下Element-ui的date日期时间组件,居然发现使用date组件后一直报错,大概意思是和props相关,但是我的页面组件也没有props,我去看了一下源码发了问题所在,先看报错吧 很重要的一段:use a data or computed property based on the prop's value. Prop being mutated: "placement"
[Vue warn]: 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”
查找原因
然后去看了源码,查找 props
和 placement
发现了问题所在,在2.15.9版本里picker.vue 的created里面给placement
赋值了,在props
里居然也有placement
在vue中需要遵循单向数据流原则 ,不能不能给 placement
赋值 (如果是对象或数组可以)
举实例:
我的demo 项目 HelloWorld.vue
里 设置了props 值为 values
然后在给values赋值,发现和Element-ui是同样的错
我的demo项目错误截图:
模拟出错误问题所在,我们解决问题也大概知道了数解决问题的思路:
- 1.在我的dmeo项目里,可以把这个值变成对象或者数组 不报错
- 2.在我的dmeo项目里,可以把values值变成data的属性 不报错
解决办法:
上面两个方法在用在element-ui源码里好像都不可行,那我们暂时唯一能做的是把Element-UI版本降低下来,我降低到了 2.41.1
这个版本就可以正常使用了 你们也可以试试