2016-12-15 48 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 
 
       } 
 
      } 
 
      } 
 
     } 
 
     }` 
 
    } 
 
});

相關問題