首页 > 解决方案 > 一个一个地获取列表项

问题描述

我有以下情况。我想在列表页面上获取所有用户及其数据。当您调用 getUsers 时,API 具有以下结构,它只返回一个 id 数组。然后我需要通过调用 getUser 查询来获取每个用户数据。

我想要的是有这样的东西,我知道它不起作用,但我想知道如何实现:

const { data } = useQuery("/api/users", getUsers);
Promise.all(data.map((user) => useQuery("/api/user/" + user.id, getUser)));

标签: react-query

解决方案


也许这样的事情可以工作?

    常量 getBatchUser = (userIds) => {
      return Promise.all(userIds.map((id) => getUser(`/api/user/${user.id}`)))
      .then(响应 => {
        返回 Promise.all(
          响应地图(响应 => {
            返回响应.json();
          })
        );
      })
      .then(数据=>数据);
    }
    常量组件 = () => {
      const users = useQuery("/api/users", getUsers);
      const { data, isLoading } = useQuery("batchedQuery", getBatchUser(users.data));
      ...
    }



推荐阅读