const [count, setCount]=useState(0);
  useEffect(()=>{
    console.log("count inside hook is ", count);
  },[count]);
  if(count<10)
    setCount(count+1); // setCount(count=>count+1)

我有这个代码,我预计要对控制台进行每一次计数,但我只能看到控制台日志(log)中的计数=10.

我的理解是,给定一个依赖数组,当其中的对象发生更改时,必须调用useEffect,但这里不会发生这种情况.有没有人能解释一下为什么会这样?

谢谢!

推荐答案

如果在渲染期间设置状态,则实际上会中止当前渲染.返回后,Reaction不会将临时更改推送到DOM,也不会运行Effect.相反,它会使用新状态启动新渲染.最终,一旦达到10,就会在渲染过程中停止设置状态,最终渲染可以完成并运行其useEffect.

Reactjs相关问答推荐

如何防止使用useCallback和memo重新渲染

如何使用Reducer更新全局变量

react 派生状态未正确更新

使用Thattle和Use Effect setTimeout进行搜索有什么不同

在Reaction中测试条件组件

如何在不同的路由中渲染相同的页面组件(包括 getServerSideProps)

如何在 React Hook Form 中使用嵌套对象处理错误验证消息

ReactJS 中的图像加载顺序

如何在 React 过滤器中包含价格过滤器逻辑?

Material UI @mui/material/Button vs @material-ui/core/Button,它什么时候改变的,旧版本的文档在哪里

VideoSDK api 不使用更新状态

在react 中从外部 api 渲染列表

单击按钮或文本从一个组件移动到另一个组件

我刚刚部署了我的 Vite React 站点,但我的图标/图像没有部署

在 redux 中分派到另一个减少时状态值不会改变

React Router v6 - 访问嵌套路由和处理手写 url 的正确方法

React如何在用户登录后等待当前用户数据被获取

ReactJS:按钮启用禁用更改 colored颜色

如何在组件文件夹内的react 组件文件中导入外部css文件?

我可以在类组件中使用 useState 挂钩吗?