Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我是新的反应,有人能告诉我为什么会发生这种情况吗。。。?_Javascript_Reactjs - Fatal编程技术网

Javascript 我是新的反应,有人能告诉我为什么会发生这种情况吗。。。?

Javascript 我是新的反应,有人能告诉我为什么会发生这种情况吗。。。?,javascript,reactjs,Javascript,Reactjs,这是密码 import React from "react" let x = 0; const App = () => { x++; console.log(x) return( <div> <p>{x}</p> </div> ) } export default App; 从“React”导入React 设x=0; 常量应用=()=>{ x++; console.lo

这是密码

import React from "react"

let x = 0;

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

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

export default App;
从“React”导入React
设x=0;
常量应用=()=>{
x++;
console.log(x)
返回(
{x}

) } 导出默认应用程序;
控制台显示1…但页面显示2


函数中的代码执行两次(显然是x++运行两次)而控制台只输出一次(1)

这可能是由于在
React.StrictMode
中呈现应用程序造成的,它会在开发模式中导致双重呈现。它还抑制后续渲染中的
console
调用,这可能解释了您看到的差异:

从React 17开始,React自动修改控制台方法 与console.log()类似,在对生命周期函数的第二次调用中使日志静音。但是,在可以使用变通方法的某些情况下,它可能会导致不期望的行为


不确定发生这种情况的确切原因,但作为一般规则,在react组件中只使用
state
属性。我无法重现这种情况,我在两个位置都得到1。你确定这正是你正在运行的代码吗?我在这里没有看到任何问题,你可能想再试一次,因为其他东西正在确保这一点