使用setState将id添加到空对象数组

时间:2018-02-11 14:00:04

标签: reactjs ecmascript-6

我有这么长的代码来简单地生成增量id

addItem = () => {
  const { items } = this.state

  const ids = items.map(item => item.id)

  const max_id = ids.length > 0 ? Math.max(...ids) : 0

  items.push({id: max_ids + 1})

  this.setState({ items })
}

避免变异或缩短代码的更好方法是什么?上面的代码工作正常,项目设置为[]作为init,但我认为上面的代码太长了。

试过这个,但它从零开始,这不是我想要的

addItem = () => {
  const { items } = this.state
  this.setState({
    items: [
      ...items,
      { id: items.length > 0 ? Math.max(...items.map(item => item.id)) + 1 : 0 }
    ]
  })
}

不确定问题出在哪里。

0 个答案:

没有答案