reactjs - 使用 RTK 查询对 ID 列表执行多个请求的最佳方法是什么?

标签 reactjs react-hooks react-redux redux-toolkit rtk-query

我正在尝试对 id 列表中的每个 id 执行一次 GET

我的 api 是使用 RTK Query 定义的,我也使用 React 和 RTK Query 的钩子(Hook)。

但是我还没有得到关于如何对列表中的每个 id 执行请求的任何线索,就像我使用 http 客户端(例如 axios)使用常规函数一样。

一些我想要做的伪代码:

ids = [1, 2]
allData = [];

for(id in ids) {
 data = await api.fetchBySingleId(id);
 allData.add(data)
}

// logging
[{id: 1, ...}, [id: 2, ...}]

最佳答案

需要考虑的几个选项:

(1) 您可以创建一个使用单个 ID 查询的组件。然后,您可以映射 ID 列表并呈现这些组件的列表。如果您特别需要一个对象中的数据,这可能有用,也可能没用。

(2) 您可以在 API 切片中创建一个端点,该端点接受 ID 列表,然后使用 queryFn 属性而不是普通的 查询 手动执行 API 调用> 一。

示例:

export const yourApiSlice = createApi({
  ...,
  endpoints: (builder) => ({
    getListOfthings: builder.query({
      queryFn: (ids) => {
        const promises = ids.map((id) => {
          return someManualFetchFunction(id);
        });
        return Promise.all(promises).then((results) => {
          return { data: results }; // final result must have either the property "data" or the property "error"
        });
      },
    }),
  }),
});

关于reactjs - 使用 RTK 查询对 ID 列表执行多个请求的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73990402/

相关文章:

reactjs - 我的 React 应用程序在 Chrome 中运行良好,但在 Firefox 中运行不佳

javascript - 理解 React 中 array.map() 范围的问题

reactjs - React useState hook 如何处理可变对象

javascript - 将 Colorbox 添加到我的 ReactJS 应用程序会创建 "jQuery is not defined"

reactjs - react : useState filter array not updating state

javascript - 单击按钮时如何使用自定义 useFetch Hook ?

reactjs - DevSettings.reload() 用于在 React Native 中注销

ruby-on-rails - 如何使用 redux-token-auth 设置 devise_token_auth 和 omniauth?

reactjs - React的mouseEvent没有offsetX/offsetY

reactjs - 何时使用 inputRef.current 而不是 this.inputRef React.js?