javascript 如何设置和访问useEffect钩子中的状态变量?[duplicate]

ruarlubt  于 2023-02-15  发布在  Java
关注(0)|答案(1)|浏览(118)
    • 此问题在此处已有答案**:

The useState set method is not reflecting a change immediately(15个答案)
9小时前关门了。
我尝试使用useState钩子设置一个状态变量,然后在reactjs应用程序的useEffect钩子中访问(console.log)它。我还在前端显示了状态变量的值。但问题是状态变量的值在前端显示正确,但在控制台中未定义。实际上我想设置状态变量并在同一个useEffect钩子中访问它。如何解决这个问题?

const [localusername, setlocalusername] = useState();
  const [localpassword, setlocalpassword] = useState();
  useEffect(() => {
    setlocalusername(localStorage.getItem("username"));
    setlocalpassword(localStorage.getItem("password"));
    console.log(localusername);
    console.log(localpassword);
  }, []);

以下是控制台的附加快照...

guz6ccqo

guz6ccqo1#

如果你想得到任何变量的新值,比如useState,你必须使用useEffect订阅它。

useEffect(() => {
        setlocalusername(localStorage.getItem("username"));
        setlocalpassword(localStorage.getItem("password"));
      }, []);

      useEffect(() => {
        console.log(localusername);
        console.log(localpassword);
      }, [localusername, localpassword])

相关问题