javascript - 无法在 setState 的 react 中连接嵌套的对象数组

标签 javascript reactjs ecmascript-6

下面的代码有什么问题?

this.setState({
  album: {
    ...this.state.album,
    photos: [
      ...this.state.album.photos,
      { url : newUrl }
    ]
  }
})

如果照片有东西,它会工作,但如果相册是一个空对象,我会得到这个错误

Cannot convert undefined or null to object

最佳答案

你也可以使用:(...this.state.album.photos || []) 所以它首先解析空数组:

const state = {
  album: {
    photos: undefined
  }
}

const newState = {
  album: {
    ...state.album,
    photos: [
      ...(state.album.photos || []),
      { url: 'newUrl' }
    ]
  }
}

console.log(newState)

关于javascript - 无法在 setState 的 react 中连接嵌套的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48577691/

相关文章:

javascript - 在 JavaScript 中检测组合框选择的项目

javascript - 有效的reactjs组件在嵌套时不会渲染

javascript - 将事件处理程序添加到 AngularJS 包含内容

javascript - 如何设计一个监听 WebSocket 并与 CSS 动画交互的 ReactJS 组件

javascript - 将 child 添加到 React 元素

javascript - 为什么事件处理程序无法获得正确的句柄?

javascript - 了解 ES6 中的导入

javascript - 导入字符串常量而不是在本地声明它们时未处理的拒绝

javascript - Redux - 在 React 组件的构造函数中使用 bindActionCreators 有什么缺点吗?

javascript - 基本 ES6 Javascript 插件 - 在函数之间重用变量