javascript - 我是 React 新手,有人可以告诉我为什么会发生这种情况......?

标签 javascript reactjs

这是代码

import React from "react"

let x = 0;

const App = () => {
  x++;
  console.log(x)

  return(
    <div>
      <p>{x}</p>
    </div>
  )
}

export default App;

控制台显示1...但页面显示2...

怎么可能函数内的代码执行了两次(显然x++运行了两次)而控制台只输出一次(1)

最佳答案

这可能是由于在 React.StrictMode 下渲染您的应用造成的,它会导致开发模式下的双重渲染。 https://reactjs.org/docs/strict-mode.html 。它还会抑制后续渲染中的console调用,这可能解释了您所看到的差异:

Starting with React 17, React automatically modifies the console methods like console.log() to silence the logs in the second call to lifecycle functions. However, it may cause undesired behavior in certain cases where a workaround can be used.

关于javascript - 我是 React 新手,有人可以告诉我为什么会发生这种情况......?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65945052/

相关文章:

javascript - 为什么这段 JavaScript 代码返回未定义?

reactjs - 将 create React 应用程序升级到版本 4 给出 : ReferenceError: Cannot access 'middleware' before initialization

Django rest-auth Token 认证

javascript - 获取 POST 输入错误的意外结束

javascript - zustand next 13 在服务器上设置初始状态并在客户端上获取状态

javascript - 单击时更改 Bootstrap 图标位置

Javascript:如何转换数组?

javascript - 当我尝试通过 google API、JS React 获取日历事件时出错

javascript - Bootstrap 下拉菜单在菜单项上单击添加文本字段

javascript - 从 Observable 获取对象属性的值