反应状态不会立即更新

时间:2021-02-15 14:07:18

标签: reactjs react-native use-state

React 状态不会立即更新。我想在按下“播放”按钮时立即更新状态。

import * as React from "react";
import { Button } from "react-native";
export default function Play() {
  const [player, setPlayer] = React.useState(1);
  function nextPlayer() {
    setPlayer(2);
    updateValue();
  }
  function updateValue() {
    if (player == 1) {
      console.log("player 1");
    } else if (player == 2) {
      console.log("player 2");
    }
  }
  return <Button title="play" onPress={nextPlayer} />;
}

1 个答案:

答案 0 :(得分:1)

函数 updateValue 是在包含状态的“旧值”的闭包中创建的。如果您希望它使用新值运行,请使用 useEffect 挂钩或将当前值作为参数传递。

const [value, setValue] = useState();

useEffect(() => {
  // receives the latest value and is called on every change (also the first one!)
}, [value])