javascript - 克隆元素并设置状态

标签 javascript reactjs

我正在尝试在 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/

相关文章:

javascript - AngularJs 允许仅摘要当前范围

javascript - 通过 postman 调用 Node api,响应为启用 javascript 错误

javascript - 用图像填充数百个 SVG 路径会导致严重的性能问题

php - header 发送后重定向到当前页面

javascript - 如果已从服务器端获取数据,则阻止 componentDidMount 获取数据

javascript - 管理从方法到模板语法的数据数组 Vue

javascript - 使用react和react-firebase-hooks时的无限循环

reactjs - 如何在页面刷新时加载所选语言

javascript - 如何使用reactjs从响应中获取数据(如数组格式)

javascript - 如何在 reactjs 中使用 highcharts 和从 API 获取的数据