我对Relay相对来说是个新手,所以这可能是我犯的一个简单的错误,但是我已经找了一段时间了,而且我还没有找到任何关于我遇到的问题的信息。
这是我从我的应用程序中得到的错误:
未知错误:不变量冲突: GraphQLFragmentPointer:
story查询Route上的参数的值应该是字符串,但它被设置为10。检查该值是否为字符串。
问题是,我实际上希望它是10,而不希望它是字符串。我配置错了什么东西吗?
这是我的GraphQL模式:
var queryType = new GraphQLObjectType({
name: 'Query',
fields: () => ({
node: nodeField,
story: {
type: storyType,
args: {
storyID: {
description: 'Story ID',
type: GraphQLInt
}
},
resolve: (root, {storyID}) => {
if (storyID) {
return Story.get(storyID)
} else {
return Story.get(10)
}
}
},
}),
});这是我定义的中继路线:
export default class extends Relay.Route {
static queries = {
story: () => Relay.QL`
query {
story(storyID: $storyID)
}
`,
};
static paramDefinitions = {
storyID: {
required: false
},
};
static routeName = 'StoryRoute';
};我就是这样实例化它的:
let route = new Route({storyID: 10})发布于 2015-09-19 15:58:24
好吧,看来我终于想出来了。
看来根字段受到严格限制,目前只能有参数、单个字符串参数或多个字符串参数,这些参数与获取的对象ID直接连接。
在这里查找更多信息:https://github.com/facebook/relay/issues/112和https://github.com/facebook/relay/issues/94
https://stackoverflow.com/questions/32668568
复制相似问题