RTK 查询:如何查询 ID 数组并返回检索到的数据数组?

dan*_*boy 8 redux redux-toolkit rtk-query

我正在使用“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>
  );
} 
Run Code Online (Sandbox Code Playgroud)

简化切片:

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
Run Code Online (Sandbox Code Playgroud)

我很高兴收到任何提示!

phr*_*hry 2

由于您必须遵守钩子规则并且不能在循环中调用钩子,因此最自然的方法是在useGetPlaceByIdQuery内部调用ShowPlace,而不是在父组件中调用。