javascript - 改变 React 状态的首选方法是什么?

标签 javascript reactjs

假设我的 this.state.list 中有一个普通对象列表,然后我可以使用它来呈现子项列表。那么将对象插入到 this.state.list 中的正确方法是什么?

下面是我认为唯一可行的方法,因为您不能像文档中提到的那样直接改变 this.state

this._list.push(newObject):
this.setState({list: this._list});

这对我来说很丑陋。有没有更好的办法?

最佳答案

concat返回一个新数组,所以你可以这样做

this.setState({list: this.state.list.concat([newObject])});

另一种选择是 React 的 immutability helper

  var newState = React.addons.update(this.state, {
      list : {
        $push : [newObject]
      }
  });

  this.setState(newState);

关于javascript - 改变 React 状态的首选方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23966438/

相关文章:

javascript - ES6 箭头回调如何确定 'this' 是什么?

javascript - Ember Bootstrap 下拉菜单

javascript - 使用显示/隐藏通过 materliaze + react 重新排序 div 是个坏主意吗?

javascript - mapStateToProps 来自 props 的初始值,然后仅状态

javascript - 使用 React 应用程序时出现错误 - 无法读取未定义的属性 'photo'

javascript - React Material-UI 纯 javascript

javascript - 解析已知键的字符串正则表达式,但保留分隔符

javascript - 使用 Vanilla JavaScript 将 href 目标从 <a> 继承到 <img> 标签

javascript - 动态 vue 路由器 - beforeEnter - 使用 next() 时无限循环

javascript - 在事件处理程序中使用 ReactDOM.render 以避免渲染昂贵的组件