react hooks 中useState声明的方法

  • 申明变量
    react(踩坑一 )
  • 为什么不能直接像在useEffect中的一样

第一,setArr(arr.push(4))不对,因为arr.push(4)返回的arr的length

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

相关文章: