问题
在组件中对state进行了修改数据已经发生了变化,但是页面没有更新,可能是因为用了数组方法对数据进行了修改,比如push等..
原因
因为react的监听是浅监听,只会监听数据第一层的变化,内层发生变化是监听不到的,当使用array.push的时候相当于直接更改了数组对应的内存块,但react内部用于对比的array的内存并没有更改,是指向同一个内存的,因为没有触发render。
解决方法
可以使用展开运算符,解构后重新赋值。
在组件中对state进行了修改数据已经发生了变化,但是页面没有更新,可能是因为用了数组方法对数据进行了修改,比如push等..
因为react的监听是浅监听,只会监听数据第一层的变化,内层发生变化是监听不到的,当使用array.push的时候相当于直接更改了数组对应的内存块,但react内部用于对比的array的内存并没有更改,是指向同一个内存的,因为没有触发render。
可以使用展开运算符,解构后重新赋值。