【问题标题】:GraphQL parser returns unknown field error for known fieldGraphQL 解析器返回已知字段的未知字段错误
【发布时间】:2019-07-23 15:16:35
【问题描述】:

我正在同一个项目中的一个工作实现中构建一个新的 createRefetchContainer(),但在运行 yarn relay 时出现此错误:

ERROR:
GraphQLParser: Unknown field `usersByName` on type `Viewer`. 
Source: document `AutocompleteUsersContainer_UsersRefetchQuery` file:
 `client/components/Autocomplete/Users/AutocompleteUsersContainer.js`.

错误中继功能:

export default createRefetchContainer(
  AutocompleteUsers,
  graphql`
    fragment AutocompleteUsersContainer_viewer on Viewer
      @argumentDefinitions(name: { type: "String", defaultValue: "" }) {
      usersByName(name: $name)
    }
  `,
  graphql`
    query AutocompleteUsersContainer_UsersRefetchQuery(
      $name: String!
    ) {
      viewer {
        usersByName(name: $name){
          id
        }
      }
    }
  `
);

工作实施:

export default createRefetchContainer(
  AutocompleteLocations,
  graphql`
    fragment AutocompleteLocationsContainer_viewer on Viewer
      @argumentDefinitions(searchValue: { type: "String", defaultValue: "" }) {
      locations(searchValue: $searchValue)
    }
  `,
  graphql`
    query AutocompleteLocationsContainer_LocationsRefetchQuery(
      $searchValue: String!
    ) {
      viewer {
        locations(searchValue: $searchValue)
      }
    }
  `
);

下面的usersByName 查询直接在graphql 中返回结果,这就是为什么我不知道为什么relayUnknown field 'usersByname'

query getViewer{
  viewer {
    usersByName(
      name: "Test Name"
    ) {
      id
    }
  }
}

【问题讨论】:

  • 您的架构是否已更新,是否需要运行relay-compiler
  • 现在才发现,是的,架构需要更新。已用yarn schema 修复

标签: reactjs graphql relayjs


【解决方案1】:

通过在 yarn relay 之前运行 yarn schema 修复

【讨论】:

    猜你喜欢
    • 2021-04-19
    • 2020-02-18
    • 2017-09-06
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    相关资源
    最近更新 更多