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

问题描述

让我们想象一下,我们的服务器上有一个这样的架构,其中有一个查询,该查询只是基于传递的name参数来获取主题列表。

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

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

如何在获取数据时声明查询在客户端上返回了一个数组?

当我们使用返回对象的查询等时,我们可以做下一件事

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

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

但是当查询返回一个数组时该怎么做?

我试图以此方式做

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

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

不幸的是,它不起作用。

感谢您提供任何信息。

解决方法

为返回单个对象的字段和返回对象列表的字段指定选择集的方式没有什么不同-语法相同,即使响应的形状不同。>