如何在同一函数中更改useState变量

时间:2020-05-24 03:18:34

标签: javascript reactjs react-hooks

我有这个变量:

const [userName, setUserName] = useState<string>("initialValue");

单击按钮,我将执行此功能:

const FacebookSign = () => {
    console.log(userName);
    setUserName("value2");
    console.log(userName);
}

userName变量不变,我的输出是:

initialValue
initialValue

但是,如果我第二次按下按钮,则会得到输出:

value2
value2

为什么值第一次不更改?

2 个答案:

答案 0 :(得分:1)

如果您了解状态更改机制的工作原理。该过程本质上是异步的。因此,可能会立即更改,也可能不会立即更改。在这里Is useState synchronous?

了解更多信息

还可以使用useEffect()挂钩立即查看状态更改。

答案 1 :(得分:1)

调用setSate时,the state is not updated immediately。重新渲染后,状态将被更新。 您可以使用useEffect来检查最新状态。

useEffect(() =>{
  console.log(userName)
},[userName])