我目前有一个reducer,它首先检查是否发送了SUCCESS或FAILURE作为操作。只有一次
loading
状态为假,我是否希望检查其他操作。我意识到下面的代码不太正确,但我只是想粘贴一些东西来了解我想要解决的问题。
不知怎么的,我感觉所有的代码
if (state.loading === false)
可以换一个减速器,但我不知道该怎么做。我尝试了几种错误的方法,不断出现奇怪的错误。
const dataLoadingReducer = (state, action) => {
switch (action.type) {
case 'FAILURE':
return {...state,loading: true}
case 'SUCCESS':
return {...state, loading: false}
}
// only do the next set of dispatches if state.loading is true, otherwise ignore
if (state.loading === false) {
switch (action.type) {
case 'SET_YEAR':
return {...state, year: 'xxx'}
case 'SHOW_SESSIONS':
return {...state, year: '111'}
case 'HIDE_SESSIONS':
return {...state, year: '222'}
case 'SHOW_FAVORITES':
return {...state, year: '333'}
}
}
};