采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
双越老师, 您好! 关于关于useEffect内部不能修改state的问题,您给的那个例子种,由于useEffect在re-render的时候不会再调用,所以在useEffect的这个作用域里count始终是初始值. 但是count是一个自由变量,他在useEffect之外定义的,所以setInterval执行的时候,会去找最外层的那个count,那不是一直在变的吗?
谢谢.
你可能忽略了一点:函数组件,每次组件更新时,函数都是重新执行一遍的,即函数中所有的变量都会重新定义的。
老师,虽然组件更新,变量会重新定义,但是useState定义的变量,是会取到最新值的,那定时器里的count不应该也能取到最新值么? 这有点理解不了。。
看了下react文档,好像是useEffect第二个参数为空数组的时候,组件更新时“会引用到先前渲染中的旧变量”,具体实现猜测是useEffect保存了内部引用的参数。。 没法贴图,https://zh-hans.reactjs.org/docs/hooks-effect.html
登录后可查看更多问答,登录/注册
面向1-3年前端的框架及项目面试“刚需内容”
4.1k 1
2.6k 11
1.3k 11
1.2k 11