作为GraphQL的新手,我有一个带有两个模型的服务器的石墨烯django实现,紧跟graphene docs' example。
在graphiql中,我可以这样做,并得到一个结果。
在另一个relay tutorial之后,我打算在屏幕上呈现此查询的结果。
我的尝试看起来像这样:
class Note extends Component {
render() {
return(
<div> {this.props.store.title} </div>
)
}
}
Note = Relay.createContainer(Note, {
fragments: {
store: () => Relay.QL`
fragment on Query {
note(id: "Tm90ZU5vZGU6MQ==") {
id
title
}
}
`
}
});
class NoteRoute extends Relay.Route {
static routeName = 'NoteRoute';
static queries = {
store: Component => {
return Relay.QL`
query {
${Component.getFragment('store')}
}
`},
};
}
我的浏览器控制台显示以下错误:
Uncaught Error: Relay transform error ``There are 0 fields supplied to the query named `Index`, but queries must have exactly one field.`` in file `/Users/.../src/index.js`. Try updating your GraphQL schema if an argument/field/type was recently added.
我一直试图通过自己的努力来解决这个问题,但收效甚微。
有人能指出我正确的方向吗?
答案 0 :(得分:0)
感谢@stubailo指出我正确的方向。我做了一些调整,现在有一个像这样运行的最小例子:
NoteList = Relay.createContainer(NoteList, {
fragments: {
store: () => Relay.QL`
fragment N on NoteNodeConnection {
edges {
node{
id
title
note
}
}
}
`
}
});
class NoteRoute extends Relay.Route {
static routeName = 'NoteRoute';
static queries = {
store: Component => {
return Relay.QL`
query {
notes {
${Component.getFragment('store')}
}
}
`},
};
}