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

来源:4-8 【全局数据传递】组件化Context Provider

羡鱼_

2021-06-27

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

写回答

2回答

阿莱克斯刘

2021-06-30

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

1
2
阿莱克斯刘
执行时机都是一致的,会立刻执行,但是异步渲染
2021-07-30
共2条回复

梓梁92

2021-11-17

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

0
0

React18 系统精讲 结合TS打造旅游电商平台

React18 精讲 + 结合 TS 实战 + 热门业务开发,获取必备技能

1993 学习 · 1015 问题

查看课程