老实说,我不知道我做错了什么。我尝试使用Get
请求来提取API数据,我使用的是Redux Query
。下面是我的代码:
export const userCartApi = api.injectEndpoints({
endpoints: (builder)=>({
getCart: builder.query({
query: ()=>{
return{
url: "/cart",
method: "get",
};
},
}),
}),
overrideExisting: false
});
在我使用它的组件内部:
export const {useGetCartQuery } = userCartApi
import { useGetCartQuery } from "../../store/Features/CartApi/CartApi";
const [getCart, {data: cartData, isError: isCartError, isSuccess: isCartSuccess, error:
getCartEror, isLoading: isCartLoading,}] = useGetCartQuery();
const getCart = async()=>{
await getCart()
}
这家店
export const Store = configureStore({
reducer:{
[userApi.reducerPath]: userApi.reducer,
[userCartApi.reducerPath]: userCartApi.reducer,
session: sessionSlice,
appLoader: appLoaderSlice,
cart: cartReducer,
user: userSlice,
},
middleware: (getDefaultMiddleware)=> getDefaultMiddleware().concat(userApi.middleware)
});
我得到的错误:
Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.
如果我简单地将getCart: builder.query
更改为getCart: builder.mutation
,并将钩子重命名为useGetCartMutation
而不是useGetCartQuery
,那么它就可以工作并获取我的数据。
1条答案
按热度按时间c6ubokkw1#
这都是我的错,拜托。我已经看到它是如何正确地做的,现在它正在工作:我只需要这样获取数据:
而不是这样: