我正在研究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; 从状态中隔离一个对象?
答案 0 :(得分:-1)
您可以使用生命周期挂钩存储初始状态:
componentDidMount() {
this._initialState = this.state;
}
稍后,在还原的情况下,只需setState(this._initialState);