Reactjs 在React with TypeScript中从GraphQL查询访问嵌套数据时出现问题

Reactjs 在React with TypeScript中从GraphQL查询访问嵌套数据时出现问题,reactjs,graphql,react-typescript,Reactjs,Graphql,React Typescript,我已经使用以下结构设置了一个GraphQL查询,我正在传递该查询以响应渲染: { events{ id name startDate endDate subscribedUsers{ id name } } } 我有两个具体问题: 在一个视图中,我有一个表,希望在其中显示事件详细信息和订阅用户的数量。当I console.log订阅用户时,它看起来像一个数组,它没有我可以引用的.length属性,而且我似乎无法对

我已经使用以下结构设置了一个GraphQL查询,我正在传递该查询以响应渲染:

 {
  events{
    id
    name
    startDate
    endDate
    subscribedUsers{
      id
      name
    }
  }
}
我有两个具体问题:

  • 在一个视图中,我有一个表,希望在其中显示事件详细信息和订阅用户的数量。当I console.log订阅用户时,它看起来像一个数组,它没有我可以引用的
    .length
    属性,而且我似乎无法对其应用数组方法来获取长度。当我试图用
  • {props.event.subscribedUsers.length}

    我发现类型{id:string;name:string;}.ts(2339)

  • 在单个事件详细信息的第二个视图中,我希望将用户的名称映射到子组件以进行渲染,但由于它似乎不是真正的数组,因此映射不起作用:

    {props.subscribedUsers.map((attendee:AttendeType)=>{…}

  • 返回类似错误
    类型“{id:string;name:string;}”上不存在属性“length”。ts(2339)

    有什么方法可以将订阅的用户数据转换为我可以正常访问的阵列,或者如何最好地获取数据


    感谢您的帮助。标记您已经指出了原因。查看架构-错误提示数据不是数组。它是一个普通对象,您可以使用简单的点符号访问,例如:

    {props.subscribedUsers.id} or   {props.subscribedUsers.name}
    

    谢谢,这很有意义。所以我应该能够使用
    Object.entries()将
    {props.subscribedUsers}
    转换为一个数组
    然后我可以映射它。我会尝试一下。检查是否会成功,除非必须,否则无需将其转换为数组。如果上述方法对其他社区有效,请接受解决方案。查看数据/网络响应(显示片段!?)-此查询可以返回对象和数组,有时可能是[missleading]如果只存在一条记录,则对象取决于特定的API行为/规范-编码前测试/签入