在我的 redux 操作中,我有一个操作将被另外两个操作调用,代码如下:
export const addParticipantFromPopupRequest = (participant, project_id, currentStep) => async (dispatch) => {
const result = await addParticipant(participant)
dispatch({ type: PARTICIPANT_ADD, payload: result })
dispatch(updateProjectStep(project_id, currentStep))
}
export const handleFinalStep = (projectId, currentStep) => async (dispatch) => {
dispatch(updateProjectStep(projectId, currentStep))
}
const updateProjectStep = (projectId, currentStep) => async (dispatch, getState) => {
dispatch({ type: MODAL_STATUS_CHANGE, payload: { projectId, currentStep } })
dispatch({ type: PROJECT_PROCESS_LIST_UPDATE, payload: { project_id: projectId, currentStep } })
const { projectsProcessListsReducer } = getState()
localStorage.setItem("projectsProcessLists", JSON.stringify(projectsProcessListsReducer))
}
如果我在调用 updateProjectStep 时不使用调度,则 addParticipantFromPopupRequest 和 handleFinalStep 无法正确运行。
我的问题是我可以用这种方式调用调度动作吗?它是否正确?为什么我在另一个动作中调用 updateProjectStep 而不是直接调用函数名时需要“调度”?