我正在尝试在 React 中创建一个克隆按钮,我有一个状态,其中包含一个包含 2 个项目的数组。该按钮将发送所选元素的索引,在本例中假设为索引 0。:) 我无法让以下代码工作
elements = [
{ item: 'something1', another: 'something2' },
{ item: 'something1', another: 'something2' }
];
setState( {
elements: [
...elements.slice( 0, index ),
{
...elements[ index ],
item: 'something'
},
...elements.slice( index + 1 )
]
} )
我知道我做错了,但是......
最佳答案
在第一个 slice 中使用 index + 1
调用,因为您想要获取所有项目,包括您克隆的项目(切片在 end
索引之前停止),插入克隆,并在其后面添加所有其他项目:
const elements = [
{ item: 'something1', another: 'something1' },
{ item: 'something2', another: 'something2' },
{ item: 'something3', another: 'something3' }
];
const index = 1;
const newElements = [
...elements.slice(0, index + 1),
{
...elements[index],
item: 'new something !!!'
},
...elements.slice(index + 1)
];
console.log(newElements);
关于javascript - 克隆元素并设置状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49759388/