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

时间:2016-12-15 05:54:15

标签: reactjs github-api graphql relay

使用Relay ContainerGithub's GraphQL API如果我fragment on User { id },则成功加载我的github帐户ID。但是,如果我尝试fragment on Repository {}它会说" GraphQL未知类型"。

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

1 个答案:

答案 0 :(得分:0)

我收到错误是因为graphQL具有客户端可访问的特定属性。试图获取错误的片段(或者在我的情况下错误地嵌套的片段名称)导致" GraphQL未知类型"。解决方案是使用名为relay的Github的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
              }
            }
          }
        }
      }`
  }
});