Redux Thunk-调度多个操作后状态未定义
当我在分派另一个操作之后分派一个操作时,我注意到我的状态是fetching变得未定义。我认为这可能是一个异步问题,操作一个接一个地调度。如何修复此问题,以便能够正确地分派这两个操作 我的redux模块:Redux Thunk-调度多个操作后状态未定义,redux,Redux,当我在分派另一个操作之后分派一个操作时,我注意到我的状态是fetching变得未定义。我认为这可能是一个异步问题,操作一个接一个地调度。如何修复此问题,以便能够正确地分派这两个操作 我的redux模块: const FETCHING = 'FETCHING' const FETCHING_KEYWORD = 'FETCHING_KEYWORD' function fetching() { return { type: FETCHING, } } function settin
const FETCHING = 'FETCHING'
const FETCHING_KEYWORD = 'FETCHING_KEYWORD'
function fetching() {
return {
type: FETCHING,
}
}
function settingKeyWord(keyWord) {
return {
type: FETCHING_KEYWORD,
keyWord,
}
}
export function fetchKeyWord (keyWord) {
return (dispatch, getState) => {
const { isFetching } = getState()
const { keyWord } = getState()
// After I dispatch the two actions here, isFetching becomes undefined
dispatch(fetching())
dispatch(settingKeyWord(keyWord))
}
}
const initialState = {
isFetching: false,
keyWord: '',
}
export default function results(state = initialState, action) {
switch (action.type) {
case FETCHING:
return {
isFetching: true,
}
case FETCHING_KEYWORD:
return {
keyWord: action.keyWord,
}
default:
return state
}
}
减速器案例需要返回整个状态,而不仅仅是更新的部分,因此在正常调度任一操作时,问题也应该发生。您可以在减速机案例中使用Object.assign或Object spread语法来修复它。例如,对于获取: 或
啊,当然!非常感谢。ImmutableJS也可以工作。
case FETCHING:
return Object.assign((), state, {
isFetching: true,
})
case FETCHING:
return {...state,
isFetching: true,
})