这是所有新的React开发者中一个流行的问题,但我不知道可用解决方案背后的逻辑。我正试图使用hooks更新状态变量并尝试读取更新后的值,但它总是返回先前的值而不是新值。以下是我的代码执行顺序。
onClick={setTransactionAccountId}
在按钮点击时,它会执行下面的代码并更新状态,但是console.log
显示旧值。
在点击按钮后,执行以下代码并更新状态,但是console.log
仍然显示旧值。
const [accountId, setAccountId] = useState(0);
const setTransactionAccountId = e => {
console.log("Clicked ID:", e.currentTarget.value);
setAccountId(e.currentTarget.value);
console.log("accountId:", accountId);
};
控制台日志:
- 第一个按钮点击:
点击的 ID:0 账户 ID:0
- 第二个按钮点击:
点击的 ID:1 账户 ID:0
请问有谁能告诉我这种行为背后的原因以及如何解决它。