Relay 和 ReactJS 在连接到 Github 的 GraphQL 时出错

Relay and ReactJS give an error when connecting to Github's GraphQL

使用 Relay Container and Github's GraphQL API 如果我有 fragment on User { id } 它会成功加载我的 github 帐户 ID。但是,如果我尝试 fragment on Repository {},它会显示 "GraphQL unknown type"。

使用 Relay 从 GitHub 的 API 中可靠地查询片段的最佳方法是什么?

我收到错误是因为 graphQL 具有可供客户端访问的特定属性。尝试获取错误的片段(或者在我的例子中是错误嵌套的片段名称)导致 "GraphQL unknown type"。解决方案是使用 Github 的名为 relay 的 GraphQL 根节点,它重新公开所有根查询,例如 repository 请参阅 the docs 了解更多详细信息。 这是我的父查询:

import Relay from 'react-relay'

export default {
  relay : Component => Relay.QL `
    query {
      relay {
        ${Component.getFragment('relay')}
      }
    }
  `
};

这是我的容器组件

import Relay from 'react-relay'
import App from './AppComponent'

export default Relay.createContainer(App, {
  initialVariables: {
    owner: "rails",
    name: "rails",
    count: 10
  },
  fragments: {
    relay: () => Relay.QL `
      fragment on Query {
        repository(owner: $owner, name: $name) {
          name
          owner
          description
          issues(first: 20) {
            edges {
              node {
                title
              }
            }
          }
        }
      }`
  }
});