代码之家  ›  专栏  ›  技术社区  ›  A. L

graphqljs-如何搜索枚举类型

  •  3
  • A. L  · 技术社区  · 6 年前

    我正试图将枚举定义为字符串,但它似乎仍然在如何理解枚举时抛出了一个错误。我猜我是在错误地查询它,但我不确定如何正确地执行它。

    定义:

    status: {
        type: new graphql.GraphQLEnumType({
            name:
                "status",
            values:
            {
                "accepted":
                {
                    value:
                        "accepted"
                },
                "pending":
                {
                    value:
                        "pending"
                },
                "reviewing":
                {
                    value:
                        "reviewing"
                },
            }
        })
    },    
    

    我的疑问是:

    const payload =
        {
            account_id:
                instanced_accounts[0]._id,
            account_type:
                instanced_accounts[0].type,
            page:
                1,
            page_length:
                5,
            search_text:
                "",
            status:
                "accepted",
        }        
    let query =
        new QueryBuilder(
            "retrieveContacts",
            payload
        )
    

    我在用 graphlq-query-builder

    当我运行查询时,它返回:

    "message": "Expected type status, found \"accepted\"; Did you mean the enum value accepted?"
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   Daniel Rearden    6 年前

    看来有个悬而未决的问题 here 那是十个月大的。查看代码时,似乎不支持枚举。我怀疑除了猴子修补代码之外还有其他可行的解决方法。查询生成器是一个很好的想法,但是有很多特性在GRAPHQL中被普遍使用(例如片段、枚举、联合、接口和指令),我希望一个完整的查询生成器能够支持所有这些特性。看起来这个特定的库的功能非常有限,可能不再维护。现在你最好自己把问题写出来。

        2
  •  -1
  •   Yevhenii Herasymchuk    6 年前

    完全同意从typescript的角度来看,它应该可以工作,但是在graphql中,它是以另一种方式实现的,我不相信它们会改变它。

    这是一个伟大的故事 article David Mraz 关于它。它会消除你所有的顾虑。

    你会在文章的底部看到解决问题的方法。 以整数为值,然后有两个选项:指定不带引号的枚举值,或使用字符串但带变量的枚举值。

    顺便说一下,我希望你能读完整篇文章。