2016-12-15 45 views
0

使用Relay ContainerGithub's GraphQL API如果我有fragment on User { id }它成功加载我的github帐户ID。但是,如果我尝试fragment on Repository {}它说“GraphQL未知类型”。当连接到Github的GraphQL时,Relay和ReactJS给出错误

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

+0

是否包含在'片段上的东西仓库{}'像Repository {id}'上的片段? – marktani

+0

是的,它并没有改变错误:/ – Trenton

回答

0

我得到的错误,因为graphQL具有客户端可访问的特定属性。尝试获取错误的片段(或者在我的情况下,错误地嵌套片段名称)会导致“GraphQL未知类型”。解决方案是使用Github的GraphQL根节点relay,该节点重新公开所有根查询,例如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 
 
       } 
 
      } 
 
      } 
 
     } 
 
     }` 
 
    } 
 
});

相关问题