如何将状态保存到var / const并停止更新?

时间:2016-06-24 22:08:54

标签: javascript react-native

我正在研究ListView的过滤器,这是一种能够对项目进行排序/订购等的方法。基本上我将参数保存在state中,并通过<Modal>上的某些切换/选择字段进行更新。

模态有取消&amp;申请按钮。如果您在更改过滤器后选择应用,则会更新ListView的内容。但是,如果他们在更改设置后选择取消,则会将其恢复为启动过滤器模式之前的状态。

所以我这样做:

// Update filterValues state
adjustFilterValue(filterSection, newValue) {

    if ( this.state.hasAdjustedFilters === false ) {

        const filterValues = this.state.filterValues;

        this.setState({
            hasAdjustedFilters: true
        })
    }

    var newFilterValues = defaultFilterValues;

    newFilterValues[filterSection] = newValue;

    this.setState({
        filterValues: newFilterValues
    })
}

但是每当我调整this.state.filterValues - newFilterValues时,也会更新。

我如何保存&amp; 从状态中隔离一个对象?

1 个答案:

答案 0 :(得分:-1)

您可以使用生命周期挂钩存储初始状态:

componentDidMount() {
  this._initialState = this.state;
}

稍后,在还原的情况下,只需setState(this._initialState);