调度不是一个函数-react中redux

exdqitrt  于 2022-11-12  发布在  React
关注(0)|答案(1)|浏览(125)

我在使用redux进行异步操作时遇到了问题。我最初是这样做的:

export function fetchProducts(request) {
  console.log("called1");

  return async function (dispatch) {
    console.log("called2");
    try {
      dispatch(setLoading(true));
      const response = await axios.get("https://fakestoreapi.com/products");
      dispatch(setProducts(response.data));
      console.log(response.data);
    } catch (error) {
      console.log(error);
      dispatch(setError(error.message));
    } finally {
      dispatch(setLoading(false));
    }
  };
}

但是内部函数没有被调用。
所以我试了这个:

export function fetchProducts(request) {
  console.log("called1");

  async function fetcher(dispatch) {
    console.log("called2");
    try {
      dispatch(setLoading(true));
      const response = await axios.get("https://fakestoreapi.com/products");
      dispatch(setProducts(response.data));
      console.log(response.data);
    } catch (error) {
      console.log(error);
      dispatch(setError(error.message));
    } finally {
      dispatch(setLoading(false));
    }
  }

  fetcher();
}

现在它说调度不是一个函数。
我该怎么办?

sxissh06

sxissh061#

在第二个函数中,您要在另一个函数中创建函数&该函数将调度作为参数。
你的第一个方法是在你的悬挂夹具内使用钩子。你可以像这样使用它
第一个

相关问题