redux测试操作必须是普通对象。使用自定义中间件进行异步操作

时间:2019-06-24 13:54:03

标签: react-redux jestjs

我没有使用redux-thunk。这会不断出现错误,我不确定如何解决。我在网上看到的示例使用的是redux-thunk,而我没有使用

我的仓库是here,我要测试的文件位于tests\actions\...

error of action

我在测试中被调用的动作

import axios from "axios";
var CancelToken = axios.CancelToken;
let fetch_cancel;

export const FETCH_CATEGORIES = "fetch_categories";

export async function fetchCategories() {
  fetch_cancel && fetch_cancel();
  const request = await axios.get(
    `https://d1i9eedhsgvpdh.cloudfront.net/production-plentific-static/api-cache/find-a-pro/api/v1/categories/all.json`,
    {
      cancelToken: new CancelToken(function executor(c) {
        // An executor function receives a cancel function as a parameter
        fetch_cancel = c;
      })
    }
  );
  return {
    type: FETCH_CATEGORIES,
    payload: request
  };
}

1 个答案:

答案 0 :(得分:0)

该错误消息表示您的操作必须是纯对象。例如:

Intents

如果发出异步请求,则不能仅返回对象,因为您需要等待请求完成。如果返回得太早,则会返回一个Promise。

但是,我无法在您的沙箱中重现您的错误。