反应 useState 不会在第一次点击时更新

时间:2021-04-16 17:08:49

标签: reactjs react-native state use-state

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

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

控制台日志在第一次点击时总是返回“0”,而不是预期的“1”。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

由于状态更新是异步的,您可能会通过将 building 添加到 useEffect 依赖项来看到状态值更新,从而导致它在 building 值更改时触发。

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

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

  return (
    <button
      title="tester"
      onClick={() => {
        setBuilding(1);
      }}
    >
      test
    </button>
  );