使用 hooks 进行两次 React 渲染

2023-12-15

为什么我的组件渲染两次?

export default function App() {
  console.log("asd");
  const [count, setCount] = useState(0);
  return (
    <div>
      <Title count={count} />
      <button
        onClick={() => {
          setCount(count + 1);
        }}
      />
    </div>
  );
}


//console= "asd" "asd"

它渲染了两次,但是如果我删除 useState 它就不会发生


您的应用程序可能由 React.StrictMode 包装。 StrictMode 是一个用于突出显示应用程序中潜在问题的工具。

StrictMode 目前可帮助:

识别生命周期不安全的组件

关于遗留字符串引用 API 使用的警告

关于已弃用的 findDOMNode 用法的警告

检测意外的副作用

检测旧版上下文 API

严格模式无法自动为您检测副作用,但它可以通过使副作用更具确定性来帮助您发现它们。这是故意这样做的双重调用以下功能:

类组件构造函数、render 和 shouldComponentUpdate 方法

类组件静态 getDerivedStateFromProps 方法

功能组件主体(您的应用程序是功能组件)

状态更新函数(setState 的第一个参数)

传递给 useState、useMemo 或 useReducer 的函数

更多详情

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 hooks 进行两次 React 渲染 的相关文章

  • ReactJS setState 仅在嵌套在 setState 中时才有效

    问题 当我使用 this setState 并在回调中输出状态时 它根本不会改变 但是当我将 setstate 嵌套在 setstate 中时 它将正常工作 例子 这不行 this setState data newData 这确实有效 t
  • 从外部material-ui组件访问主题

    我有一个使用标准深色主题的主题提供商 我希望能够从我自己的自定义组件访问该主题的详细信息 但我不知道如何做到这一点 在下面的例子中 this props theme未定义 ReactDOM render
  • 在 useRef() 中存储回调

    这是一个可变引用的示例 它存储来自反应过度的博客 https overreacted io making setinterval declarative with react hooks function useInterval callb
  • 如何使用 JSX 和 Lodash 重复一个元素 n 次

    我在我的应用程序中使用 React JSX 和 Lodash 来实现我想要的 我需要根据条件重复某个元素一定次数 我该怎么做呢 这是元素 span span 我这样分配它 let card if data hand 8 or more ca
  • 在严格模式下,一个对象字面量不能有多个同名属性

    这是我的代码 import combineReducers from redux import postReducers from postReducers import stationsReducer from TrackCircuitS
  • React Native 中 fontAwesome 图标的圆形轮廓

    我想使用 fontAwesome 图标 使其位于圆圈的中间 我想将它用作一个图标项 我读到我们可以将它与圆形图标一起使用并将其放置在其中 但我无法使其工作 import IconFA from react native vector ico
  • 无法验证 CSRF 令牌的真实性 Rails/React

    我的 Rails 应用程序中有一个 React 组件 我正在尝试使用它fetch 发送一个POST对于我在本地主机上托管的 Rails 应用程序 这给了我错误 ActionController InvalidAuthenticityToke
  • 如何使用 Firestore 中的对象数组更新 Field 中的特定对象? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 所以我有一个emojiCounter字段用于存储对象数组 例如 emojiCounter emoji
  • 了解 React Native 中的默认字体大小

    在过去的几个月里 我一直在开发一个 React Native 应用程序 但有些事情总是让我困惑 而我现在正试图弄清楚它的真相 我正在尝试标准化应用程序中的字体大小 正文 标题等 并且正在努力了解 React Native 究竟从哪里获取默认
  • 无法在 .tsx 文件中导入 CSS 模块

    我正在使用 typescript 构建基本的 React 应用程序 但无法导入 CSS 文件索引 tsx file 我能够导入索引 css文件如下 import index css this import gives typescript
  • 监听 redux 动作

    我想创建一个可重用的 redux 表模块 它将存储和更新页码 显示的总页数等 我可以在所有页面之间共享这些模块 但是 我需要更新操作来触发刷新数据操作 该操作将根据页面到达不同的端点 因此 可能类似于页面特定的监听 RefreshData
  • 哪种反应钩子与 firestore onsnapshot 一起使用?

    我在我的 React Native 应用程序中使用了大量的 Firestore 快照 我也在使用 React hooks 代码看起来像这样 useEffect gt someFirestoreAPICall onSnapshot snaps
  • 渲染:带参数的动作

    我有一个有 2 种方法的类 第一个方法由视图使用一些 GET 参数 params page 调用 我想保存这些参数并通过渲染操作将它们发送到我的第二个方法 class exemple def first sql save of params
  • Next.js:如何将 source-map-explorer 与 Next.js 一起使用

    我想分析我的 Next js 构建源地图浏览器 https www npmjs com package source map explorer 有人可以帮我编写脚本吗 对于 React CRA 我使用以下脚本 build analyze n
  • 在电子生成器反应电子应用程序后,在 Windows 中出现空白屏幕

    在电子生成器反应电子应用程序后 Windows 中出现空白屏幕 这是package json 在电子生成器反应电子应用程序后 Windows 中出现空白屏幕 name SmallBusinessManagement version 0 1
  • 过滤嵌套的 JSON 对象

    我有一个搜索栏 您可以在其中输入员工姓名 它应该根据过滤器返回姓名 我有一个嵌套的 JSON 对象 如下所示 我需要深入了解该对象以访问数组中的员工姓名 您可以看到我尝试实现的多个选项 它们已被注释掉 我的问题是代码没有过滤名称并返回所有名
  • 如何解决此错误“不要使用对象作为类型”?

    我不明白这个错误消息造成的 我的组件有两个和一个包含对象的数据数组 我收到一条错误消息 不要使用object作为一种类型 这object类型目前很难使用 我该如何解决它 我附加了数组包含对象的数据 first tsx import data
  • 如何正确地将代码从angularjs迁移到reactjs

    我正在尝试将代码从 Angular 迁移到 React 不确定这是否正确 只是需要一些帮助 看看我是否朝着正确的方向前进 我不知道角度 所以我很困惑 文本数据 是否类似于反应中的状态 我是否必须在顶部的状态中声明它 角度代码 scope t
  • React this.state 未定义?

    我正在遵循 Pluralsight 的初学者教程 在表单提交时将值传递给addUser组件方法 我需要将 userName 推送到this state users但我收到错误 App jsx 14 Uncaught TypeError Ca
  • ReactJS 水平对齐material-ui 元素

    我试图在文本输入旁边有一个单选按钮 这样用户基本上可以输入问题的 答案 并标记一个首选答案 然而 Material UI 将每个都放在自己的行上 这就是我目前所拥有的 div div

随机推荐

  • Pyinstaller:AttributeError:模块“enum”没有属性“IntFlag”[重复]

    这个问题在这里已经有答案了 我需要将python代码编译为exe 我找到了一些如何做到这一点的指南 其中要求我为此安装 PyInstaller pip install upgrade pyinstaller 但我收到下一个错误 C User
  • 使用 Monotouch 处理 iOS 的 UITableViewSource 事件

    我试图捕获并处理一个事件 当 a 的元素UITableViewSource被点击 这是我的代码 public class TableViewSource UITableViewSource public event EventHandler
  • HSpec 无预期编译失败

    我正在学习 Haskell 并且编写了这个函数 safeHead a gt Maybe a safeHead Nothing safeHead x xs Just x 我现在尝试用 HSpec 测试它 import Test Hspec m
  • Eclipse 中的 XSLT 2.0 无需额外的库?

    是否可以在 Eclipse 中执行 XSLT 2 0 转换而无需额外的库 AltovaXML Saxon 答案是否定的 您需要安装 XSLT 2 0 处理器 例如 Saxon
  • 编译器和汇编器位于计算机的哪里?

    所以我知道最基本的知识 编译器将源代码转换为汇编代码 汇编器将汇编代码转换为机器代码 但我无法正确谷歌搜索 它们实际上位于哪里 我假设编译器位于硬盘驱动器上的某个位置 因为您可以从网络下载编译器并将它们用于各种编程语言 汇编器是位于硬盘上
  • python请求获取cookie

    x requests post url data data print x cookies 我使用requests库从网站获取一些cookie 但我只能获取cookie 从响应中 如何从请求中获取cookie 谢谢 或者 您可以使用requ
  • 如何动态设置 Rust 数组长度?

    我想创建这样的数组 let arr 0 length 其中长度是ausize 但我收到这个错误 E0307 The length of an array is part of its type For this reason this le
  • 由于打开相机时内存不足,phonegap Android 应用程序崩溃

    我正在使用 PhoneGap v1 3 0 开发 Android PhoneGap 应用程序我的应用程序有一个按钮 当单击该按钮时 使用phonegap api启动相机 当用户捕获图像时返回照片路径 但发生的情况是应用程序在相机返回之前崩溃
  • 使用httprequest下载文件

    是否可以使用 httprequest 从网站下载文件 我只习惯用它来获取页面的源代码 如果无法使用 httprequest 来完成此操作 是否可以使用 C 下载文件而无需使用网络浏览器 编辑 答案必须允许我选择硬盘上将文件下载到的位置 你绝
  • (PHP) 如何将 crypt() 与 CRYPT_BLOWFISH 一起使用?

    首先 我发现要使用 CRYPT BLOWFISH 我需要使用以 2a 开头的 16 字符盐 但是 那crypt 的 php net 文档说有些系统不支持CRYPT BLOWFISH 这种情况有多常见 接下来 从文档上的示例中 我看到我使用
  • 可以用相机测量到物体的距离吗?

    可以用手机摄像头测量到物体的距离吗 我的意思是 在我的应用程序中 我启动相机 将相机面对物体 比如说房子 然后按下按钮 它会计算距离并在屏幕上显示我 如果可能的话我可以在哪里找到一些教程或相关信息 我承认这个问题已经得到了充分的回答 明显需
  • 为什么两个浮动 div 之一被推到下一行?

    我有两个 div 我想将其放在一行中 第一个具有固定宽度 第二个没有设置宽度 如果我尝试将两者都设置为 float left 则第二个 div 将转到下一行 如果它包含太多单词 但如果第二个是非浮动的 它会与第一个 div 保持在同一行 为
  • jenkins字符串参数的字符串长度限制是多少

    现在我创建一个带有字符串参数的jenkins作业 该参数来自上游作业 我只是想知道字符串参数的长度是否有限制 因为此信息是从上游作业获取的 并且它是一个非常长的字符串 我相信没有人真正提供答案 因为没有理由限制底层技术 让我们看看 爪哇 J
  • 使用 Numpy 进行高效求和面积表计算

    我正在尝试计算面积求和表使用 python 和 numpy 构建特征计数矩阵 目前我正在使用以下代码 def summed area table img table np zeros like img astype int for row
  • 在 Node.js 中,如何“包含”其他文件中的函数?

    假设我有一个名为 app js 的文件 很简单 var express require express var app express createServer app set views dirname views app set vie
  • Material Design Lite - 文本字段中的底线与彩色线有轻微间隙

    我正在尝试让 Material Design Lite 文本字段正常工作 但遇到一个问题 底部彩色线与灰色起始线之间有轻微的 3 4 px 间隙 我插入页面的任何 MDL 文本字段示例都会得到相同的结果 什么可能在本地触发该问题 我还在前端
  • Django(使用 TokenAuthentication):“non_field_errors”:“无法使用提供的凭据登录?

    我正在使用 httpie 来测试我的自定义身份验证 http POST http 127 0 0 1 8000 api token auth username username1 password Password123 我确实使用创建了一
  • 从 gchar 缓冲区发送图像到 ftp 服务器 (libcurl)

    我正在开发一个用 C 编程的 Linux 应用程序 它处理 gdk pixbuf 图像 然后通过 ftp libcurl 将它们发送到远程服务器 图像保存到 gchar 缓冲区中gdk pixbuf save to buffer 问题是我不
  • Django 更新模型

    我有一个模型如下 class UserPrivacy models Model user models ForeignKey User profile models SmallIntegerField default 1 choices P
  • 使用 hooks 进行两次 React 渲染

    为什么我的组件渲染两次 export default function App console log asd const count setCount useState 0 return div div