首页 > 解决方案 > 如何访问特定项目密钥

问题描述

我有这个状态

this.state = {
          isdone: '',
          items: [],
          currentItem: {text:'', key:''},
        }

我在 currentItem 中存储唯一键,我需要遍历这些项目以设置 isdone 值所以我尝试这样

completeItem = key => {
    this.state.items.map(item => {
                if (this.state.currentItem.key === key) {
                    this.setState({isdone: 'is-done'})
                }
            })
}

但这不会改变 isdone 值,如何正确更改 isdone 值?

标签: reactjs

解决方案


设置isdone为特定item而不是state.isdone.

const items = this.state.items;

items.map((item, index) => {
  if (this.state.currentItem.key === key && item.key === key) {
    this.setState({
      items: [
        ...items.slice(0, index),
        { ...item, isdone: 'is-done' },
        ...items.slice(index + 1, items.length)
      ]
    })
  }
})

推荐阅读