关于useEffect内部不能修改state的坑的问题

来源:14-16 Hooks使用中的几个注意事项

qq_慕斯卡0462102

2021-05-01

双越老师,
您好!
关于关于useEffect内部不能修改state的问题,您给的那个例子种,由于useEffect在re-render的时候不会再调用,所以在useEffect的这个作用域里count始终是初始值.
但是count是一个自由变量,他在useEffect之外定义的,所以setInterval执行的时候,会去找最外层的那个count,那不是一直在变的吗?

谢谢.

写回答

1回答

双越

2021-05-01

你可能忽略了一点:函数组件,每次组件更新时,函数都是重新执行一遍的,即函数中所有的变量都会重新定义的。

1
2
qq_我爱看小说_04248608
看了下react文档,好像是useEffect第二个参数为空数组的时候,组件更新时“会引用到先前渲染中的旧变量”,具体实现猜测是useEffect保存了内部引用的参数。。 没法贴图,https://zh-hans.reactjs.org/docs/hooks-effect.html
2021-07-03
共2条回复

前端框架及项目面试 聚焦Vue3/React/Webpack

面向1-3年前端的框架及项目面试“刚需内容”

4695 学习 · 1667 问题

查看课程