【问题标题】:Gatsby graphql skipping type annotationGatsby graphql 跳过类型注释
【发布时间】:2020-01-18 17:45:02
【问题描述】:

我正在使用自定义 YAML 类型来处理从 Markdown frontmatter 读取的字符串。这种类型根据输入生成一个对象数组,并且不可能知道结果数据的确切形状。

这意味着,在编译时生成的 graphql schema 无法推断类型,并抛出错误。有没有办法禁用 frontmatter 中特定字段的类型注释?

index.md

---
foo: !customType "[Foo][Bar]"
bar: !customType "[[a][b]][c]"
---

然后,我想查询它:

query IndexQuery {
    foo // Should give me [Object(Foo), Object(Bar)]
    bar // Should give me [[Object(a), Object(b)], Object(c)]
}

我阅读了this,但这似乎需要我基于整个文档创建一个新类型,而该类型并不能真正扩展。

【问题讨论】:

    标签: graphql gatsby


    【解决方案1】:

    GraphQL 不支持动态模式,因此该字段需要在所有实例中匹配。您可以为 GraphQL 查询生成唯一类型和联合,但这似乎是多余的。相反,您可能希望将数据视为字符串并在组件中使用 JSON.parse() 将其转换为可用状态。

    【讨论】:

    • 谢谢,我也意识到我可以简单地将数据字符串化,然后解析回来!
    猜你喜欢
    • 2019-02-19
    • 2021-09-13
    • 2014-03-03
    • 2020-08-11
    • 1970-01-01
    • 2021-02-03
    • 2013-08-24
    • 2012-06-01
    • 1970-01-01
    相关资源
    最近更新 更多