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