Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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 理解reactjs中的状态?_Javascript_Reactjs - Fatal编程技术网

Javascript 理解reactjs中的状态?

Javascript 理解reactjs中的状态?,javascript,reactjs,Javascript,Reactjs,我在学英语。我正在构建计数器应用程序。我认为下面的代码和中的状态会起作用 都是一样的。console.log打印正确,但在html中它不会更改值。你能解释一下为什么代码不起作用吗 import React,{useState}来自“React”; 让计数=0; 常量计数器=(道具)=>{ 常量setCount=()=>{ 计数=计数+1; }; 返回( { setCount(); console.log('计数器:',计数); }}>钮扣 你好{props.name},您当前的号码是:{coun

我在学英语。我正在构建计数器应用程序。我认为下面的代码和中的状态会起作用 都是一样的。console.log打印正确,但在html中它不会更改值。你能解释一下为什么代码不起作用吗

import React,{useState}来自“React”;
让计数=0;
常量计数器=(道具)=>{
常量setCount=()=>{
计数=计数+1;
};
返回(
{
setCount();
console.log('计数器:',计数);
}}>钮扣
你好{props.name},您当前的号码是:{count}
)
};
导出默认计数器;

单击按钮后,应使用新值呈现html,这是state和setstate方法发挥作用的地方。setcount表示setcount将更改该值并刷新或说用该值重新加载html。

更改变量不会重新加载组件。 要查看dom中的更新,必须重新提交组件。有几种方法可以做到这一点

  • 改变状态
  • 更换道具
  • 改变环境
如果您将count变量置于某个状态并从那里触发它,您将看到它在组件中更新

文档中的示例
import React,{useState}来自“React”;
函数示例(){
//声明一个新的状态变量,我们称之为“count”
const[count,setCount]=useState(0);
返回(
您单击了{count}次

设置计数(计数+1)}> 点击我 ); }
好吧。。这就是为什么州政府在那里的原因。。它本质上告诉您的组件对其更改做出反应

如果希望DOM响应变量的更改,则需要将其绑定到状态变量

下面的代码只会更改变量,但不会触发任何重新渲染。这就是为什么您可以在控制台中看到更改,但在DOM中看不到

const setCount = ()=> {
   count = count + 1;
};

首先,根据React docs,组件仅在
状态
道具
更新时才重新呈现。因此,变量中的更改不会影响组件的渲染。如果变量更改影响组件,则无需使用此库。了解。希望能有帮助!。。快乐

请检查设置状态
const setCount = ()=> {
   count = count + 1;
};