reactjs - 改变 React 数组状态比克隆它更好/更快的方法?

标签 reactjs

每当 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/

相关文章:

javascript - 调用: TypeError: is not a function in meteor结果下发异常

javascript - 在 React 和 Redux 中使用 setTimeout

javascript - React Redux 在单个对象属性更改时重新呈现整个列表

javascript - 覆盖 Material-UI 样式不起作用

reactjs - 尝试运行 ReactJS 教程时出现语法错误 "Expecting expression, got ' <'"

reactjs - React Material-UI网格系统

javascript - ReactJS:初学者任务 - 添加换行符

javascript - 在 react js中悬停在父div上显示子div

node.js - 端口打开但连接被拒绝...centos 8/nginx/react/nodejs

javascript - `DatePickerInput` "className"属性为 `&lt;input/>`