使用Relay Container和Github's GraphQL API如果我fragment on User { id }
,则成功加载我的github帐户ID。但是,如果我尝试fragment on Repository {}
它会说" GraphQL未知类型"。
使用Relay从GitHub API可靠地查询片段的最佳方法是什么?
答案 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
}
}
}
}
}`
}
});