gpt4 book ai didi

javascript - UseState 总是显示以前的值

转载 作者:行者123 更新时间:2023-12-05 00:25:10 26 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





The useState set method is not reflecting a change immediately

(15 个回答)


2年前关闭。




这是所有新 react 开发人员中的一个流行问题,但不知何故我无法理解可用解决方案背后的逻辑。我正在尝试使用钩子(Hook)更新状态变量并尝试读取更新后的值,但它总是返回以前的值而不是新值。下面是我的代码执行顺序。

onClick={setTransactionAccountId}

单击按钮时,它会执行以下代码并更新状态,但 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
    帐号:0
  • 第二个按钮点击:

  • 点击ID:1
    帐号:0

    谁能告诉我这种行为背后的原因以及如何解决它。

    最佳答案

    accountId不会更新此渲染。您必须等待 下一个 渲染它以使其更新。 accountId仅在 useState 时填充在函数组件的顶部叫做。你在渲染的中间。如果您需要实际值,请继续将其拉出 e.currentTarget.value .

    关于javascript - UseState 总是显示以前的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60438537/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com