reactjs 有没有一种好方法可以将“新”值添加到数组中

9nvpjoqh  于 2023-02-08  发布在  React
关注(0)|答案(2)|浏览(148)
const [value, setValue] = useState(0);
const [array, setArray] = useState([1, 2]);

const handleKeyDown = (event) => {
    setValue(3);
    setArray([...array, value]);
};

这里我希望新的数组是[1,2,3]
相反,我得到[1,2,0]
我现在知道为什么会发生这种情况,但有没有什么好的方法来解决它呢?

0tdrvxhp

0tdrvxhp1#

value直到下一次重新渲染时才会更新为3,因此在调用setArray时它仍然是初始值(0)。您应该将所需的值赋给一个常规变量,然后将其用于两个变量。

const handleKeyDown = (event) => {
    const newValue = 3;
    setValue(newValue);
    setArray([...array, newValue]);
};
yh2wf1be

yh2wf1be2#

这里问题是值还没有更新,它将变为“3”,但是在下一次渲染中,您可以简单地将值直接添加到数组中:

setValue(3); // if you need to update value for the next render
setArray([...array, 3]);

相关问题