Запрос RTK: как запросить массив идентификаторов и вернуть массив извлеченных данных?
Я работаю с «Redux Toolkit Query» и сталкиваюсь с ситуацией, когда у меня есть массив идентификаторов мест и я хочу вернуть массив извлеченных мест. Однако с моей текущей настройкой я могу запросить только одно место, но не весь составленный список мест.
Хуки, в которых я вызываю запрос:
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
Рад любой подсказке!
1 ответ
Решение
Поскольку вы привязаны к правилам хуков и не можете вызывать хуки в цикле, наиболее естественным способом сделать это было бы вызвать
useGetPlaceByIdQuery
в
ShowPlace
, а не родительский компонент.