Как восстановить исходное состояние в хранилище резервов? - PullRequest
0 голосов
/ 31 января 2019

В избыточном хранилище я установил начальное состояние на некоторое значение, как показано ниже:

const search_initial_state = {
FilterItem:18
}

Я изменяю это значение состояния в другой функции вручную, но после нажатия кнопки сброса я хочу установить «FilterItem»укажите его начальное значение (т.е. 18)

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Если я правильно вас понял, вы хотите сбросить только одно значение к его исходному / начальному значению.

Определите создателя действия, который отправляет тип действия RESET_FILTER_ITEM, а затем всякий раз, когда вы хотите сбросить элемент фильтра, отправьте этоaction.

const resetFilterItem = () {
    return {
      type: "RESET_FILTER_ITEM"
    }
}

и ваш редуктор будет выглядеть после реализации случая сброса

const myReducer = (state = initialState, action) => {
   switch(action.type){
      case "OTHER_CASE":
        return {...state}
      case "RESET_FILTER_ITEM":
        return {
           ...state,
           FilterItem: initialState.FilterItem
        }
      default:
        return state  
   }
}

Надеюсь, это поможет вам.

0 голосов
/ 31 января 2019

Редукторы обновят свое состояние, когда будет отправлено действие для обработки.Таким же образом, вы должны отправить действие, которое говорит вашему редуктору вернуть начальное состояние.

//Reducer code
const initialState = {}

const myReducer = (state = initialState, action) => {
   switch(action.type){
      case "FILTER_ITEM":
        return {...someUpdatedState}
      case "RESET_ITEM":
        return initialState
      default:
        return state
  }
}

Ваш редуктор вернет новое состояние в зависимости от типа действия.

Так что просто определитесоздатель действия, который отправляет тип действия RESET_ITEM или что-то еще, что вы можете захотеть назвать.Затем используйте его, когда хотите сбросить.

const resetItem = () => {
   return {
      type: "RESET_ITEM"
   }
}
...