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
}
}
}
}
}`
}
});
使用 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
}
}
}
}
}`
}
});