开发者问题收集

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

2018-03-06
730

我有这个函数,它返回一个对象数组,每个对象代表一个便签,我想要的是每次单击其中一个便签时更改“content”的值

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

调用 console.log 的结果是这个对象数组: 在此处输入图像描述

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

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

1个回答

我建议使用像这样的地图。

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

我看到你正在阅读来自 props 的粘贴,我建议在你的父组件中有一个函数来运行上述代码,你可以在需要时从你的子组件调用它。

Francis Malloch
2018-03-06