我想在react中删除对象的对象,我打算做的是获取当前状态并将其分配给变量,更改该变量,使用setState将更改后的变量分配给状态。像这样

constructor() {
    super()
    this.state = {
      obj: {
        "0": {
          something: 123
        },
        "1": {
          another_thing: 'abc'
        }
      }
    }
  }

  deleteOneObj(index) {
    let newObjState = this.state.obj[index]
    delete newObjState
  }

  render() {
    return(<h1>hello<br />
      <button onClick={()=>this.deleteOneObj(1)}>
        delete one obj
      </button>
    </h1>)
  }


但是删除newObjState似乎不起作用。

最佳答案

我更喜欢使用Object.assign,它更具可读性,并且还创建了对象的新引用:

deleteOneObj(index) {
    let newObjState = Object.assign({}, this.state.obj)
    delete newObjState[index]
    this.setState({obj: newObjState})
}

关于javascript - 根据 react 中的键删除嵌套对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48302118/

10-10 00:06