我正在用 React 构建一个简单的游戏。问题是上下文已正确更新,但事件侦听器函数内的上下文值未更新。如果我访问事件函数外部的值,则会呈现新的更新值。
对于第一个 keyup 事件,该值将为 0,但对于下一个事件,它应该是新的更新值。
const updateGame = useUpdateGame();
const gameData = useGameData();
//Assume Default gameData.board value is 0
// Assume context value updated to 5
useEffect(() => {
document.addEventListener("keyup", (e) => {
e.stopImmediatePropagation();
console.log(gameData.board) //0
handleKeyPress(e.key, gameData.board, updateGame);
});
}, []);
console.log(gameData.board) //5
Run Code Online (Sandbox Code Playgroud)