使用整数查询参数的RelayJS不变违例

时间:2015-09-19 13:06:07

标签: reactjs graphql relayjs graphql-js

我对Relay相对较新,所以这可能是我犯过的一个容易犯的错误,但我已经找了一段时间了,而且我还没有找到任何关于我遇到的问题的信息。

这是我从应用程序中获得的错误:

  

未捕获错误:不变违规:GraphQLFragmentPointer:查询<copyField source="field1" dest="search_field"/> story的参数值应为字符串,但设置为Route。检查该值是否为字符串。

问题是我实际上希望它是10并且不希望它是字符串。我是否错误地配置了某些内容?

这是我的GraphQL架构:

10

这是我定义的中继路线:

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';
};

1 个答案:

答案 0 :(得分:2)

好吧,看起来我终于明白了。

根域显然受到严格限制,目前只能没有参数,单个字符串参数或多个字符串参数,直接与提取的对象的ID相连。

在此处查找更多信息:https://github.com/facebook/relay/issues/112 在这里:https://github.com/facebook/relay/issues/94