簡體   English   中英

使用 graphql-code-generator 生成 React/Apollo 鈎子時,數組類型是否不正確?

[英]Are array types incorrect when generating React/Apollo hooks with graphql-code-generator?

我想知道在 graphql 查詢/突變中定義的數組(可以是有效 graphql 實現中的單例或元組)是否被 graphql-codegen 轉換為嚴格的數組類型。 這是設計使然嗎?

鑒於此架構:

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-code-generator 將生成:

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 輸入支持強制轉換,但 codegen 不支持(參見: https : //github.com/dotansimha/graphql-code-generator/issues/4888 )我們正在研究它並希望在即將推出的版本中修復它;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM