gpt4 book ai didi

graphql - Reason React 和 Graphql 处理 ENUM 值

转载 作者:行者123 更新时间:2023-12-05 00:45:33 25 4
gpt4 key购买 nike

刚刚开始学习理性 react ,并在尝试读取 ENUM 值的 graphql 设置中挣扎。

设置

  • 理性 react
  • 阿波罗graphql
  • graphql_ppx
  • github graphql 端点

  • 我正在通过 github api 获取最新的拉取请求数据并阅读 status属性是一个枚举并在 gql 文档中定义为:
  • 开通
  • 已关闭
  • 合并

  • 检查网络选项卡,我看到状态是作为字符串接收的。在应用程序中,当我记录该字段时,我会得到一堆反射(reflect)这些值的整数。 smb 可以解释一下,我如何将数据作为字符串“打印”到我的 View 中以及为什么它们被转换为整数?是否有某种生成的类型可以用于变体开关?

    let stateEnum = data->map(node => node##state);
    Js.log(stateEnum) // possible values: 880069578, 982149804 or -1059826260
    // somehow switch these values here?! :)
    // current type of `stateEnum` is option('a)

    非常感谢,祝你有美好的一天!

    最佳答案

    GraphQL 枚举表示为 Reason 多态变体。在后台,在运行时,它们只是整数。如果要将它们显示给用户,您有两个选择:
    1. 使用开关手动将它们映射到字符串

    let status = 
    switch(node#status) {
    | `OPEN => “Open”
    // other cases
    }
  • 您可以使用 BuckleScript 功能来生成 jsConverters:
  • [@bs.deriving jsConverter]
    type status = [ |`OPEN | `CLOSED /* other cases */]

    这将为您生成两个函数: statusToJsstatusFromJs .它们帮助您将变体与字符串相互转换。

    这是关于它的 BuckleScript 文档: https://bucklescript.github.io/docs/en/generate-converters-accessors#convert-between-js-string-enum-and-bs-polymorphic-variant

    关于graphql - Reason React 和 Graphql 处理 ENUM 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56996567/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com