报错
[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.
问题情形
组件A调用组件B,同时A需要传参给B,B使用props:{}接收参数值。B在修改该参数后出现错误。
报错原因
- 在 vue1.x 版本中利用 props 的 twoWay 和 .sync 绑定修饰符就可以实现 props 的双向数据绑定。
- 在 vue2.0 中移除了组件的 props 的双向数据绑定功能,数据只能单向流动,子组件只能被动接收父组件传递过来的数据,并在子组件内不能修改由父组件传递过来的 props 数据。
解决方法
使用$emit让父组件监听到自组件的事件。
子组件事件响应函数:

父组件响应函数:


参考
https://blog.youkuaiyun.com/u013948858/article/details/118342541
在Vue2.0中,由于props数据只能单向流动,直接修改props会触发警告。为了解决这个问题,应当使用$emit通知父组件来更新数据。子组件通过事件触发函数,父组件则通过监听该事件来响应并更新相应的数据。这样做可以保持数据流的清晰和单向性。
5万+

被折叠的 条评论
为什么被折叠?



