Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.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
Reactjs useState未在第一次渲染时注册_Reactjs_React Hooks - Fatal编程技术网

Reactjs useState未在第一次渲染时注册

Reactjs useState未在第一次渲染时注册,reactjs,react-hooks,Reactjs,React Hooks,我有一个非常简单的react应用程序。我试图设置一个状态变量,然后在console.log之后立即设置该变量,但得到一个空值 var [techFilterTerm, setTechFilterTerm] = useState(''); setTechFilterTerm('Test'); console.log(techFilterTerm); 我希望在第一次渲染时,它会在控制台中显示“Test”,但它会显示空字符串。这里发生了什么?如果我正确理解了您的问题,您希望知道更新的值,为此,您可以

我有一个非常简单的react应用程序。我试图设置一个状态变量,然后在console.log之后立即设置该变量,但得到一个空值

var [techFilterTerm, setTechFilterTerm] = useState('');
setTechFilterTerm('Test');
console.log(techFilterTerm);

我希望在第一次渲染时,它会在控制台中显示“Test”,但它会显示空字符串。这里发生了什么?

如果我正确理解了您的问题,您希望知道更新的值,为此,您可以使用useEffect api,只要您希望观察的某个值发生更改,就会调用该api。要观察的值需要作为第二个参数传递为useEffect中的数组。在您的情况下,您希望知道TechFilterm的更新值,以便可以将TechFilterm作为第二个参数传递给useEffect,如下所示

 useEffect(() => {
      //here you will get the updated value whenever there is change in value
  },[techFilterTerm]); 
以下是有关useEffect的更多信息的链接


如果我正确理解了您的问题,您希望知道更新的值,为此,您可以使用useEffect api,只要您希望观察的某个值发生更改,就会调用该api。要观察的值需要作为第二个参数传递为useEffect中的数组。在您的情况下,您希望知道TechFilterm的更新值,以便可以将TechFilterm作为第二个参数传递给useEffect,如下所示

 useEffect(() => {
      //here you will get the updated value whenever there is change in value
  },[techFilterTerm]); 
以下是有关useEffect的更多信息的链接


设置过滤项(“测试”)
是异步的,因此对于第一次渲染,它将是默认值,即
它是否返回一个承诺-aka,有没有办法等待结果?它没有,但是根据文档,它将
排队
,并且在初始渲染期间,根据该
,返回的状态(state)与作为第一个参数(initialState)传递的值相同。
。我还访问了代码库本身,它调用了内部调度程序,该程序可能用于光纤内部的VDOM扩散。如果希望初始值为
'Test'
,为什么不执行
useState('Test')
settchfilterterm('Test')
是异步的,因此对于第一次渲染,它将是默认值,即
它是否返回一个承诺-aka,有没有办法等待结果?它没有,但是根据文档,它将
排队
,并且在初始渲染期间,根据该
,返回的状态(state)与作为第一个参数(initialState)传递的值相同。
。我还访问了代码库本身,它调用了内部调度程序,该程序可能用于光纤内部的VDOM扩散。如果希望初始值为
'Test'
,为什么不执行
useState('Test')