在动作创建者中调度内部动作

时间:2018-06-13 18:23:21

标签: redux react-redux

我们可以在动作创建者中使用调度吗?他们在动作创建者中服务的目的是什么? 以下是代码库中的修改代码示例。

export default function xyz(data) {
    const url = ;
    return function (dispatch) {
        dispatch(
            a()
        );
        callApi(url, REQUESTS.POST, HEADERS, data).then((response) =>{
            dispatch(
                b(data)
            );
        }).catch((error) => {
            dispatch(
                c(error.toString())
            );
        });
    };
}
// this returns  a type (an object) 
export function a() {
    return {
        type: xyzzzz
    };
}
Similarly we have b and c returning either type or say objects .

1 个答案:

答案 0 :(得分:0)

是的,您可以在操作中分派多个操作。

我通常会发送一个像这样的非常规动作

function action() => {
  return async (dispatch) => {
    let payload;

    dispatch('before-request');
    try {
      await someAsyncProcess();
      payload = { status: 'success' };
    } catch (err) {
      payload = { status: 'failure' };
    }
    dispatch('after-request', payload);
  };
}