如何在 Apollo 中获取数组作为结果?

How to fetch an array as result in Apollo?

假设我们的服务器上有这样的模式,其中包含一个查询,该查询仅根据传递的名称参数获取主题列表。

Query listTopics(
name: String!
): [Topic!]!

type Topic {
id: String!
name: String!
image: String
timeBasedFeed: String!
scoreBasedFeed: String!
aliases: [String!]!
parents: [String!]!
allAncestors: [String!]!
}

我们如何在获取数据时在客户端声明查询 returns 一个数组?

当我们处理 returns 一个对象等的查询时,我们可以做下一件事

import { gql, useQuery } from '@apollo/client';

const GET_DOG = gql`
  query GetDog { 
      // Declare response fields
      id
      name
     }
`;

但是查询returns一个数组时如何做到同样的呢?

我试过这样做

import { gql } from '@apollo/client';

export const LIST_TOPICS_QUERY = gql`
  query listTopics($name: String!) {
      [ 
        id,
        name,
        image,
        timeBasedFeed,
        storeBasedFeed,
        aliases,
        parents,
        allAncestors
      ]
  }
`;

不幸的是,它不起作用。

感谢您提供任何信息。

为 returns 单个对象的字段和 returns 对象列表的字段指定选择集的方式没有区别 -- 语法是相同的,即使响应的形状会有所不同。