问题描述
我正在使用“Redux Toolkit Query”并遇到这样的情况:我有一个地点 id 数组并且想要返回一个检索到的地点数组。但是,使用我当前的设置,我只能查询一个地点,而不能查询整个编译的地点列表。
function ShowPlaceList() {
const placeIDs = [1,2,3,4,5];
const { data,isFetching,isLoading } = useGetPlaceByIdQuery({
placeID: placeIDs,});
// data should be an array
return (
<div>
{data.map(function (item,i) {
return <ShowPlace {...item} />;
})}
</div>
);
}
简化切片:
import { createApi,fetchBaseQuery } from '@reduxjs/toolkit/query/react'
export const placeApi = createApi({
reducerPath: 'placeApi',baseQuery: fetchBaseQuery({ baseUrl: 'https://providePlace.co/api/v2/' }),endpoints: (builder) => ({
getGetPlaceById: builder.query({
query: ({placeID}) => `place/${placeID}`,}),})
export const { useGetPlaceByIdQuery } = placeApi
我很高兴有任何提示!
解决方法
由于您受到钩子规则的约束并且不能在循环中调用钩子,因此最自然的方法是在 array-contains-any
中调用 useGetPlaceByIdQuery
,而不是父组件。>