如何在React中替换对象数组的值

时间:2018-03-06 02:12:13

标签: javascript arrays reactjs object

我有这个函数返回一个对象数组,每个对象代表一个粘性,我想要的是每次点击其中一个胶粘物时改变“内容”的值

  handleStickyEdition = (index) => {
    const { currentStage } = this.props
    const stickies = currentStage.get('stickies')
    const updatedStickies = [...stickies]
    console.log(updatedStickies)
  }

调用console.log的结果就是这个对象数组: enter image description here

如果我console.log(updatedStickies[index].get('content')),我将获得我想要更改的对象的内容。例如name 3

如何用空字符串替换此content?换句话说,如果我点击位置0中的对象,我怎样才能使name 3等于''

1 个答案:

答案 0 :(得分:1)

我建议使用这样的地图。

this.setState({
  updatedStickies: this.state.updatedStickes.map(sticky => ({
    ...sticky
    content: sticky.id === idOfStickyWeWantToUpdate ? "" : "content"
  }))
});

我看到你正在阅读道具中的胶粘物,我建议在你的父组件中使用一个函数来运行上面的代码,如果需要你可以从你的子组件中调用它。