这可能会令人困惑,但我感谢您的帮助。我基本上有一个数据列表,每个数据旁边都有一个“复制”按钮。单击时,我希望它更改为“已复制!” 500 毫秒,然后返回“复制”。
我的设置如下:我有一个数组,其中包含我作为道具传递给组件的数据列表(比如说数组 x)。
使用这个数组,我创建了一个 useEffect 钩子(当数据数组 x 更新时更新)。这个钩子使用原始数组长度的新数组(比如说数组 y)和文本“复制”更新一个新状态。
据我所知,似乎工作得很好,现在我的问题出在哪里:然后我为创建新数组的按钮创建一个处理程序,使用点符号展开并将按钮的索引从“复制”更新为“抄袭!”。然后超时将其恢复为“复制”(下面的代码)。
效果很好,但你怀疑我有一个错误。如果我在另一个按钮上太快地点击复制,我最终会将原来的“复制”按钮卡在那里。正如我猜测的那样,我更新状态的速度更快,然后另一个状态回落。
function copyButtonClipBrd(index) {
console.log("Test Copy Button");
console.log(cpyBTN);
let newArr = [...cpyBTN];
newArr[index] = "Copied!";
setCpyBTN(newArr);
setTimeout(function () {
let newArr = [...cpyBTN];
newArr[index] = "Copy";
setCpyBTN(newArr);
}, 600);
}
会喜欢任何建议,甚至更好的方法来做到这一点,因为我这样做主要是为了学习。谢谢大家!
慕桂英546537
Cats萌萌
慕码人8056858
收到一只叮咚
相关分类