父组件传递给子组件的数据,如果是一个复杂对象(例如一个数组或对象),那么子组件只会监听对象的引用而不是对象的内容。这意味着当对象的内容发生变化时,子组件不会更新。
解决:
1、在子组件使用 watch 监听 props传过来的值,如果发现改变,调用forceUpdate刷新视图。
this.$forceUpdate()
2、父组件中声明一个布尔变量,数据发生变化后,切换一下变量状态,可刷新子组件视图。
3、数据发生变化后,在下面调用一下splice方法修改原数组长度(索引、截取长度都为0),数组不变,但视图可成功渲染。
this.list.splice(0, 0)