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

问题描述 投票:1回答:1

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

  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等于''

javascript arrays reactjs object
1个回答
1
投票

我建议使用这样的地图。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.