如何避免在反应中共享内存变量?

时间:2018-10-26 12:15:53

标签: reactjs react-state-management

我正在通过API获取一些行,并分配这样的状态变量

this.setState({
    rows: data,
    originalRows: data
})

现在,我在过滤器方法中使用这些状态变量,在此我根据过滤器更改行数。

let rows = this.state.rows
filterFunction(){
    //filter logic, editing the variable rows
}

问题是,这也会更改this.state.originalRows的值 如何避免更改状态值?

1 个答案:

答案 0 :(得分:1)

实现此目标的各种方法。

// 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,例如。指针并使用原始变量更改值。