import React, { useState, useEffect } from "react";
export default function Example() {
  const [count, setCount] = useState(0);
  const [tmp, setTmp] = useState(0);
  useEffect(() => {
    document.title = `You clicked ${count} times`;
    setTmp(count);
    console.log(tmp);
  });
  return (
    <div>
      <p>
        You clicked {count} times and temp is {tmp}
      </p>
      <button onClick={() => setCount(count + 1)}>Click me</button>
    </div>
  );
}


在阅读了this之后,我预计这会导致无限的重新渲染,因为状态tmp在useEffect中被更改了,但它没有,有人能帮助一下可能的原因吗?

推荐答案

如果值没有更改,react 设置器会忽略该集合.重复调用setTmp(0)不会触发新的渲染.将其更改为setTmp(n => n+1),您将得到您正在寻找的无限循环.

Reactjs相关问答推荐

react 表复选框不对任何操作做出react

利用OVERPASS API端点计算某建筑的表面积

有没有办法让两个状态在两次精准渲染中更新?

无法找出状态正在被更改的位置

如何管理可重用无线电输入的 React 状态?

使用新数据更新时,React 不更新具有过滤功能的深层嵌套对象数组中的变量状态

React - 将一个充满空值的无限大小的数组存储在 ref 中是否可以,或者我应该重置数组吗?

单击按钮时如何添加或删除 3d 对象

在 Nextjs13 应用程序目录中呈现从 supabase 获取的数据

文本的几个词具有线性渐变 colored颜色 - React native

Formik onChange() 字段挂钩覆盖显示值和 Select 机制

如何处理页面加载时发生的 reactjs 错误?

SonarCloud 代码覆盖率不适用于 Github Action

渲染的钩子比预期的少.这可能是由 React Hooks 中意外的提前返回语句引起的

如何在自定义 JSX 元素上声明属性?

需要帮助在 document.queryselector 的 nextjs 页面上插入 useEffect 状态

如果查询不存在,如何返回所有产品?

从输入中获取数字时,react 计数器不会增加

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

我想将悬停 colored颜色 更改为红色.写了一个话题,这个元素没有react ,怎么解决呢?