2016-06-24 2 views
0

Я работаю над фильтром для ListView, чтобы иметь возможность сортировать/заказывать/etc элементы. В основном я сохраняю параметры в state, и они обновляются с помощью некоторых переключателей/полей выбора на <Modal>.Как сохранить состояние в var/const и остановить его обновление?

Модаль имеет отмена & применить кнопку. Если вы выберете , примените после смены фильтров, содержимое 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 прибудет обновляются тоже.

Как сэкономить & изолировать объект?

ответ

-1

Вы можете хранить исходное состояние с помощью крюков на протяжении жизненного цикла:

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

Позже, в случае Revert, просто setState(this._initialState);