Запрос 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, а не родительский компонент.

Другие вопросы по тегам