如何解决在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 举报,一经查实,本站将立刻删除。