每当 React 类有一个状态对象是数组或包含数组时,更新该状态都会感觉很尴尬。通常我做的是
var newArrayThing = _.clone(this.state.arrayThing); //or slice()
newArrayThing[123] = 42; //update stuff
this.setState({arrayThing: newArrayThing});
有没有更好或更优雅的方法来处理我缺少的这个问题?特别是因为我总觉得如果数组很大并且变化很小,那么这会不必要地慢。所有这些复制都是为了一个简单的改变。但状态不应该直接编辑似乎是口头禅。
Facebook 文档提到了 Immutability Helpers,但它们似乎比这更牵强。
最佳答案
这是一种非常惯用的方法,但如果您担心克隆大型数组,那么您绝对应该查看 update helper您提到的,情况并没有那么糟糕:
this.setState({
arrayThing: React.addons.update(this.state.arrayThing, {123: {$set: 42}})
})
关于reactjs - 改变 React 数组状态比克隆它更好/更快的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30889465/