Как сбросить (избыточное) значение состояния редуктора при любых действиях?
Я хотел бы сбросить свое сообщение об ошибке, которое я сохраняю на моем пользовательском редукторе при любом действии, то есть отправляется из любого модуля, но в основном с навигацией.
Я искал типы действий от react-navigation
поэтому я мог слышать их в своем пользовательском редукторе, но не мог найти способ, и написание их явно привело бы к плохому качеству кода.
Я сделал это, как я покажу дальше (обратите внимание на случай по умолчанию).
Но есть проблема: redux-persist
прекратить регидратацию моего пользовательского редуктора.
export default function reducer(state = initialState, action) {
const { type, payload } = action
switch (type) {
case LOGIN_PENDING: {
return _.merge(state, { loading: true })
}
case LOGIN_FULFILLED: {
return _.merge(state, { ...payload, loading: false })
}
case LOGIN_REJECTED: {
return _.merge(state, { ...initialState, error: payload.message })
}
case SIGNUP_PENDING: {
return _.merge(state, { loading: true })
}
case SIGNUP_FULFILLED: {
return _.merge(state, { ...payload, loading: false })
}
case SIGNUP_REJECTED: {
return _.merge(state, { ...initialState, error: payload.message })
}
default: {
return { ...state, error: '' }
}
}
}
Заранее спасибо.
1 ответ
Может быть, вы можете попробовать что-то вроде
import { REHYDRATE } from 'redux-persist/lib/constants'
// in your reducer
case REHYDRATE: {
return state
}
default: {
return _.merge(state, { error: '' })
}