在GraphQL ppx中捕获Union的ReasonML多态变体

问题描述

我无法解释ppx中解释多态变体的联合。

在使用url = 'https://www.continente.pt/' options = webdriver.ChromeOptions() options.add_argument("start-maximized") options.add_argument("disable-infobars") options.add_argument("--disable-extensions") driver = webdriver.Chrome(chrome_options=options,executable_path=r'D:\doc\Fiverr\newMercado\chromedriver.exe') driver.get(url) 的浏览器中,我找到了一个看起来像

的对象
Js.log

使用graphql查询,如下所示:

{__typename: "MultipleChoiceQuestion",id: "91d7d8ec-a581-56ef-8467-ca4d54da1dd7",questionBaseId: "91d7d8ec-a581-56ef-8467-ca4d54da1dd7",questionBase: {…},choices: Array(4)}choices: (4) [{…},{…},{…}]

多态变体返回:

module Fields = [%graphql
  {|
    fragment TestFields on Test {
      questions {
        __typename
        ...on LongAnswerQuestion {
          ...LongAnswerQuestionFields
        }
        ...on MultipleChoiceQuestion {
          ...MultipleChoiceQuestionFields
        }
        ...on TrueFalseQuestion {
          ...TrueFalseQuestionFields
        }
        ...on FillInTheBlankQuestion {
          ...FillInTheBlankQuestionFields
        }
      }
   |}
 ];

通过此处捕获:

{__typename: "MultipleChoiceQuestion",{…}]
LongAnswerQuestion q
undefined

我正在使用 Js.log("Question_Model obj"); Js.log(obj); switch (obj) { | `LongAnswerQuestion(q) =>{ Js.log("LongAnswerQuestion q"); Js.log(q); q |> LongAnswerQuestion.Model.objectToId |> Schema.LongAnswerQuestion.idToString |> q => UnionSchema.Question.LongAnswer(q) } | `MultipleChoiceQuestion(q) =>{ Js.log("MultipleChoiceQuestion q"); Js.log(q); q |> MultipleChoiceQuestion.Model.objectToId |> Schema.MultipleChoiceQuestion.idToString |> q => UnionSchema.Question.MultipleChoice(q) } ... "reason-apollo-client": "1.0.0-beta.0",

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)