当前位置: 首页 > 知识库问答 >
问题:

useState未在第一次渲染时注册

东方俊杰
2023-03-14

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

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

我希望在第一次渲染时,它会在控制台中显示“Test”,但它会显示空字符串。这是怎么回事?

共有1个答案

蒋茂材
2023-03-14

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

 useEffect(() => {
      //here you will get the updated value whenever there is change in value
  },[techFilterTerm]); 

以下是有关useEffect的更多信息的链接。

https://reactjs.org/docs/hooks-effect.html

 类似资料:
  • 我开始使用钩子,我遇到了一个问题。 我有一个状态: 最初设置为,它在初始渲染时正确渲染。 但问题是,我希望它的值是我使用hook在初始渲染中获取的数组的长度 但是我不知道阵列的长度,直到组件安装完毕。 所以,在这个函数中,我试图访问priceToFilter,但它返回,因为这是它的初始值。 但是,如果您在中看到,我将通过函数将设置为另一个值。但是,当发生在初始化挂载之后时,它不会获得新值,而是保持

  • 例子:https://codesandbox.io/s/react-hooks-playground-forked-15ctx?file=/src/index.tsx 一个父级有一个useState钩子,三个子级有一个use效应钩子。我希望子级通过回调更新父级中的状态,以便所有组件状态都更新为父级中的一个对象。这对于初始/第一渲染不起作用,因为当前状态不会在每个use效应触发的回调之间更新(参见上

  • 也许你们中的一些人可以帮我睁开眼睛。 我不明白为什么在这段代码中:https://codesandbox.io/s/use-state-renders-twice-6r1xl组件应用程序在安装并单击按钮时呈现两次(console.log被调用两次) 代码: 结果: 它只是一个功能组件挂钩!

  • 在此处输入图像描述我正在使用use效果挂钩来使用获取api,但它不起作用。当只有一个api时,它可以正常工作,但当我使用另一个api使用createData函数中的use效果挂钩获取数据时,它会出错。 我做了一些研究,我认为这是因为react中的组件重新渲染引起的一些问题,我试图搜索修复,但没有找到它,所以我发布它,如果有任何问题,请在评论中问我,我会给出更多的细节。

  • 我在函数组件中使用useState(),第一个渲染调用两次。这是正确的还是错误的?如果正确,为什么渲染两次?setCount也会渲染组件两次。 谢啦

  • 我有一个问题,我正在尝试将值设置为一个状态(选定的Pathway),关于通过 redux 设置的另一个常量(国家标签)。 设置“selectedPatway”后,我想在<code>中显示结果 一切都很好,但是当我刷新页面时,我在浏览器中得到一个“渲染的钩子比之前渲染的钩子多”。这是代码: 我浏览了整个互联网,我认为我已经正确地应用了所有东西(显然不是因为它不工作…)。 不有条件地调用钩子 在顶层使