React useState 在第一次点击时不更新

lac*_*che 5 state reactjs react-native use-state

为什么第一次点击时状态没有改变?

const [building, setBuilding] = useState(0);
Run Code Online (Sandbox Code Playgroud)
<Button 
     title="tester"
          onPress={() => {
            setBuilding(1);
            console.log(Building);
          }}/>
Run Code Online (Sandbox Code Playgroud)

第一次单击时控制台日志始终返回“0”,而不是预期的“1”。我该如何解决?

Rob*_*ell 14

由于状态更新是异步的,您可能会通过将构建添加到 useEffect 依赖项来看到状态值更新,从而使其在构建值发生变化时触发。

const [building, setBuilding] = useState(0);

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

  return (
    <button
      title="tester"
      onClick={() => {
        setBuilding(1);
      }}
    >
      test
    </button>
  );
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

30929 次

最近记录:

4 年,10 月 前