如何在 React 中将该值弹出并取消移动到数组?

问题描述 投票:0回答:0

我有一个包含 26 个字母的数组,我想

pop
最后一个字母和
unshift
到同一个数组。这样做的目的是创建一个旋转阵列来模拟恩尼格机中的转子“步进”时的情况。

我的密码工作正常,并且有一种使用

useState
将数组重置为其原始配置的方法,但是当涉及到
pop
unshift
时,我遇到了问题,我知道反应不喜欢数组操作的破坏性方法。所以我正在尝试找出如何在
useState
函数中模仿这些反应。

我在没有任何帮助的情况下尝试了

pop
unshift
,所以切换到
setState
,如下所示:

    setRotar1((prevArray) => {
        const lastLetter = prevArray.pop();
        return [lastLetter, ...prevArray];
    });

但是,当检查控制台日志时,新数组将返回第 0 个索引处的倒数第二个字母。日志还完全删除了原来的最后一个字母。

i.e. [a, b, c, d, e, f]  
should return [f, a, b, c, d, e]  
actually returns [e, a, b, c, d]  

我确信 setRotar1 函数的工作方式存在问题,但作为反应新手,我不确定如何正确管理它。如果以前有过类似的问题,我深表歉意,但我似乎找不到解决方案。

reactjs arrays hook
© www.soinside.com 2019 - 2024. All rights reserved.