请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么setState中可以传入一个匿名函数进行更新state?

图片描述
我查看官方文档后,文档里的例子是这么写的
图片描述
造成这两种区别的原因是什么呢?

正在回答 回答被采纳积分+3

2回答

阿莱克斯刘 2021-06-30 05:44:45

因为匿名函数最终也还是会return一个确定的数据,所以传入一个匿名函数与直接传入数值这两种写法其实效果是一样的

1 回复 有任何疑惑可以回复我~
  • 提问者 羡鱼_ #1
    请问老师,传入的这个匿名函数什么时候会执行呢?传入的时候立刻执行吗?
    回复 有任何疑惑可以回复我~ 2021-07-22 13:14:30
  • 执行时机都是一致的,会立刻执行,但是异步渲染
    回复 有任何疑惑可以回复我~ 2021-07-30 08:30:27
梓梁92 2021-11-17 22:39:45

主要是为了解决闭包问题,官网的这个代码是告诉你,useEffect() 第二个参数依赖数组如果是空的话,内部使用了外界变量,不就是一个闭包吗?闭包取到的值永远是固定的。所以 setXXX 匿名函数写法,就不用读取外部变量了,匿名函数自身就接收最新的 state

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信