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} />;
}
答案 0 :(得分:1)
函数 updateValue
是在包含状态的“旧值”的闭包中创建的。如果您希望它使用新值运行,请使用 useEffect
挂钩或将当前值作为参数传递。
const [value, setValue] = useState();
useEffect(() => {
// receives the latest value and is called on every change (also the first one!)
}, [value])