我在使用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();
}
现在它说调度不是一个函数。
我该怎么办?
1条答案
按热度按时间sxissh061#
在第二个函数中,您要在另一个函数中创建函数&该函数将调度作为参数。
你的第一个方法是在你的悬挂夹具内使用钩子。你可以像这样使用它
第一个