如何避免在反应中共享变量的内存?
How to avoid memory sharing of variables in react?
我正在通过 API 获取一些行并像这样分配状态变量
this.setState({
rows: data,
originalRows: data
})
现在我在过滤器方法中使用这些状态变量,我根据过滤器更改行数。
let rows = this.state.rows
filterFunction(){
//filter logic, editing the variable rows
}
问题是,这也会改变 this.state.originalRows
的值
如何避免更改状态值?
实现此目的的各种方法。
// rest-spread operator copies values to new object
const obj = {...this.state.originalRows}
// merges your values to an empty object which works same way
const obj2 = Object.assign({}, this.state.originalRows)
如果你的代码如下
const obj = this.state.originalRows
您只需创建 reference
到原始变量,例如。指针并更改原始变量中的值。
我正在通过 API 获取一些行并像这样分配状态变量
this.setState({
rows: data,
originalRows: data
})
现在我在过滤器方法中使用这些状态变量,我根据过滤器更改行数。
let rows = this.state.rows
filterFunction(){
//filter logic, editing the variable rows
}
问题是,这也会改变 this.state.originalRows
的值
如何避免更改状态值?
实现此目的的各种方法。
// rest-spread operator copies values to new object
const obj = {...this.state.originalRows}
// merges your values to an empty object which works same way
const obj2 = Object.assign({}, this.state.originalRows)
如果你的代码如下
const obj = this.state.originalRows
您只需创建 reference
到原始变量,例如。指针并更改原始变量中的值。