微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用graphql-code-generator生成React / Apollo钩子时,数组类型是否不正确?

如何解决使用graphql-code-generator生成React / Apollo钩子时,数组类型是否不正确?

我想知道在graphql查询/突变中定义的数组是否可以通过graphql-codegen转换为严格的数组类型,在有效的graphql实现中可以是单例或元组。这是设计使然吗?

给出以下模式:

schema {
  query: Query
}

input CustomFieldFilterInput {
  id: ID
  value: String
}

type Query {
  me: User!
  users(ids: [ID],customFields: [CustomFieldFilterInput]): [User]
}

type CustomField {
  id: ID
  value: String
}

interface Node {
  id: ID!
}

type User implements Node {
  id: ID!
  username: String!
  email: String!
  customfields: [CustomField]
}

查询

query findUserOrUsers($userIds: [ID],$customFields: [CustomFieldFilterInput]) {
  users(ids: $userIds,customFields: $customFields) {
    ...UserFields
  }
}
fragment UserFields on User {
  id
  username
}

graphql代码生成器将生成

export type FindUserOrUsersQueryVariables = Exact<{
  userIds?: Maybe<Array<Maybe<Scalars['ID']>>>;
  customFields?: Maybe<Array<Maybe<CustomFieldFilterInput>>>;
}>;

但是在我见过的(大多数)graphql实现中,放入数组或单个值是有效的:

query findUseRSString {
  users(ids: 123,customFields: { value: "123",id: 123 }) {
    ...UserFields
  }
}

query findUsersArray {
  users(ids: [123],customFields: [{ value: "123",id: 123 }]) {
    ...UserFields
  }
}

我想念什么吗?有没有办法覆盖这个?

这是一个小型仓库,复制了“问题”:https://github.com/kweestian/arrays-gql-gen

解决方法

操作中的GraphQL输入支持强制,但代码生成不支持(请参阅:https://github.com/dotansimha/graphql-code-generator/issues/4888) 我们正在努力,希望在以后的版本中予以解决;)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。