react hooks 中useState声明的方法
- 申明变量
- 为什么不能直接像在useEffect中的一样
第一,setArr(arr.push(4))不对,因为arr.push(4)返回的arr的length
第二,打印arr确实改变了,但是如果直接在push后setArr(arr)
视图不会改变
原因是diff算法,这里就不说的那么深,其实就是数组或对象,如果对其进行操作,虽然是改变了,但是其实是没办法识别是否已经改变
所以一般我们要重新赋值,就会重新深拷贝一份,这样再次赋值,就可以了,正确做法如上图所示