首页 > 解决方案 > 如何获得 redux-saga 动作的响应?

问题描述

我正在尝试获取redux-saga从服务返回的操作响应。这些是我项目的一些片段。

// ACTION

const actions = {
  LOAD_CURRENT_ACCOUNT: 'user/LOAD_CURRENT_ACCOUNT'
};

export const currentUser = () => ({
  type: actions.LOAD_CURRENT_ACCOUNT
});

// SERVICE

export async function currentAccount() {
  try {
    const url = config.endpoints.user;
    const res = await http.get(url);

    return res.data;
  } catch (err) {
    if (err.response && err.response.data) {
      notification.warning({
        message: err.response.data.code,
        description: err.response.data.message
      });
    }

    return false;
  }
}
// SAGA

export function* LOAD_CURRENT_ACCOUNT() {
  const res = yield call(currentAccount);

  if (res) {
    yield put({
      type: actions.SET_STATE,
      payload: res.data
    });
  }
}

现在,当我尝试记录响应时,它只返回操作类型对象,即"user/LOAD_CURRENT_ACCOUNT"我期待 API 响应而不是这个输出。

// abc.js

const res = await store.dispatch(currentUser());

console.log(res);

// RESULT: "user/LOAD_CURRENT_ACCOUNT"

如何在此处获取 API 响应?

标签: javascriptreactjsredux-saga

解决方案


推荐阅读