我在 react 中创建了一个传输列表,其中有两个用于在彼此之间传输名称的框。(左列表到右列表)。所以我编写了一个函数handleAllRight,它将左侧列表中的所有元素传输到第二个列表,该列表基本上是数组,并使左侧列表为空,用于handleAllRight 按钮的目的。现在我又介绍了一个leftList2 和rightList2,它们也有handleAllRight 功能。
但我不会为这两个列表编写一个通用的 handleAllRight 函数。handleAllRight 函数中唯一不同的是列表的编号。这是我使用 if 循环的 handleAllRight 函数。但是,如果其中传递了任何列表,如何动态创建它。它应该负责检查用户单击的 id 的传输。
const handleAllRight = listNumber => {
if (listNumber === 1) {
setRightlist1(leftlist1);
setleftlist1([]);
}
if(listNumber === 2){
setRightlist2(leftlist2)
setleftlist2([]);
}
};
但我不想使用这个条件,因为可能有很多列表,所以它会增加代码行的大小。我尝试的另一件事是使用 eval 函数。它适用于任意数量的传输列表但我也不想使用 eval,因为使用它不是一个好习惯。例如,我像这样使用 eval
const handleAllRight = listNumber => {
eval(`setRightJobSeq${listNumber}(leftJobSeq${listNumber})`)
eval(`setleftJobSeq${listNumber}([])`);
}
这是 codeSandbox 链接。https://codesandbox.io/s/trusting-water-ccymg?file=/src/App.js
呼如林
拉风的咖菲猫
小怪兽爱吃肉
随时随地看视频慕课网APP
相关分类