rom*_*man 5 graphql reason reason-react
刚刚开始学习理性反应,并在尝试读取 ENUM 值的 graphql 设置中挣扎。
设置
我正在通过 github api 获取最新的拉取请求数据,并读取status
在 gql 文档中定义为枚举的属性:
检查网络选项卡,我看到状态是作为字符串接收的。在应用程序中,当我记录该字段时,我会得到一堆反映这些值的整数。smb 可以解释一下,我如何将数据作为字符串“打印”到我的视图中,以及为什么将它们转换为整数?是否有某种生成的类型可以用于变体开关?
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)
Run Code Online (Sandbox Code Playgroud)
非常感谢,祝你有美好的一天!
GraphQL 枚举表示为 Reason 多态变体。在运行时,它们实际上只是整数。如果您想向用户显示它们,您有两个选择:\n1. 使用开关手动将它们映射到字符串
\n\nlet status = \n switch(node#status) {\n | `OPEN => \xe2\x80\x9cOpen\xe2\x80\x9d\n // other cases\n }\n
Run Code Online (Sandbox Code Playgroud)\n\n[@bs.deriving jsConverter]\ntype status = [ |`OPEN | `CLOSED /* other cases */]\n
Run Code Online (Sandbox Code Playgroud)\n\n这将为您生成两个函数:statusToJs
和statusFromJs
。它们可以帮助您在变体与字符串之间进行转换。
这是有关它的 BuckleScript 文档:https://bucklescript.github.io/docs/en/generate-converters-accessors#convert- Between-js-string-enum-and-bs-polymorphic-variant
\n 归档时间: |
|
查看次数: |
192 次 |
最近记录: |