【问题标题】:How to update react state object array如何更新反应状态对象数组
【发布时间】:2016-11-26 18:51:42
【问题描述】:

我需要知道如何更新状态中的用户数组以接受新的用户对象。

状态用户数组仅包含 id 和 name。

当我尝试使用更新插件推送用户数组中的项目时。

var newUser = {id:1, name:'Foo'};
let newState = update(this.state, {users: {$push: [newUser]}});

"react-dom.js:17858 Uncaught Error: Objects are not valid as a React child (found: object with keys {id, name})。如果您打算渲染一组子项,请改用数组或使用 React 附加组件中的 createFragment(object) 包装对象。检查 UsersTable.(...) 的渲染方法"

【问题讨论】:

  • 您是否尝试过错误消息中提到的方法?例如,将{id:...} 替换为[id:...],它应该可以工作吗?
  • 我也有同样的问题。

标签: reactjs reactive-programming


【解决方案1】:

你正在改变状态。而是尝试:

const users = this.state.users
users.push(newUser)
this.setState(Object.assign({}, this.state, { users }}))

【讨论】:

  • 执行此操作的更好方法:this.setState((prevState) => { users: prevState.users.push(newUser) })
猜你喜欢
  • 2017-08-08
  • 2021-12-26
  • 1970-01-01
  • 2021-10-22
  • 1970-01-01
  • 1970-01-01
  • 2021-12-23
  • 2018-09-18
  • 2020-07-01
相关资源
最近更新 更多