您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

this.setState不像我期望的那样合并状态

this.setState不像我期望的那样合并状态

我认为setState()不做递归合并。

您可以使用当前状态的值this.state.selected构造一个新状态,然后调用setState()该状态:

var newSelected = _.extend({}, this.state.selected);
newSelected.name = 'Barfoo';
this.setState({ selected: newSelected });

在这里使用过函数_.extend()function(来自underscore.js库),selected通过创建状态的浅表副本来防止对该状态的现有部分进行修改

另一种解决方案是编写setStateRecursively()对新状态进行递归合并,然后对其进行调用replaceState()

setStateRecursively: function(stateUpdate, callback) {
  var newState = mergeStateRecursively(this.state, stateUpdate);
  this.replaceState(newState, callback);
}
其他 2022/1/1 18:15:52 有305人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶