Element-ui的date日期时间组件的bug 报错:prop's value. Prop being mutated: "placement"

245 阅读1分钟

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"在这里插入图片描述

查找原因

然后去看了源码,查找 propsplacement 发现了问题所在,在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 这个版本就可以正常使用了 你们也可以试试