對不起,我希望你能理解我。如果某個操作取決於Redux中的另一個異步操作,該怎麼辦?
我使用redux-thunk
作爲異步操作。
// actionA.js
export function actionA() {
return fetch('api call')
.then((data) => ({
type: 'actionA',
data: data
}))
}
// reducer.js
export function reducer(state, action) {
...
if(action.type === 'actionA') {
return {
...,
dataA: action.data,
...
};
}
}
// actionB.js
export function actionB() {
return (dispatch, getState) => {
if(!getState().dataA) {
dispatch(actionA());
}
doSomethingWithDataA(getState().dataA);
};
}
在某些情況下,我只需要派遣actionA
無需調度actionB
。但是當我派遣actionB
時,actionB
將使用dataA
,dataA
由actionA
創建。所以在actionB
,我會檢查Store
中是否有dataA
,如果沒有,我會先發送actionA
。但是actionA
是異步操作,當actionA
完成時我無法獲得。 那麼如何處理這個問題呢?
實際上,在'actionA'的'fetchDateFromServer()'中,我只是使用獲取polyfill。問題是在某些情況下,我只需要調度'actionA'而不調度'actionB'。 – hronro