当我声明了以下初始状态时:
getInitialState: function() {
return {
isValid: false,
metaData: {
age: 12,
content_type: 'short_url'
}
};
},我用setState更新状态如下:
...
let newMetaData = { age: 20 };
...
this.setState({
isValid: true,
metaData: newMetaData
});
...生成的this.state.metadata对象仅定义了年龄。但据我所知,this.setState()将其参数与现有状态合并。为什么它在这里不起作用,这不是应该是经常性的合并吗?
是否有一种方法可以将新对象属性合并为React/ES6?中的状态对象属性
发布于 2016-11-15 04:25:54
setState执行浅合并。如果metaData是平面的:
this.setState({
metaData: Object.assign({}, this.state.metaData, newMetaData),
});或者如果使用扩散:
this.setState({
metaData: { ...this.state.metaData, ...newMetaData },
});https://stackoverflow.com/questions/40601834
复制相似问题