GraphQL ppx中捕获并集的ReasonML多态性变体
我在ppx中的联合解释多态变体时遇到了麻烦 在我的浏览器中,使用GraphQL ppx中捕获并集的ReasonML多态性变体,graphql,apollo,reason,ppx,polymorphic-variants,Graphql,Apollo,Reason,Ppx,Polymorphic Variants,我在ppx中的联合解释多态变体时遇到了麻烦 在我的浏览器中,使用Js.log我发现一个对象 {__typename: "MultipleChoiceQuestion", id: "91d7d8ec-a581-56ef-8467-ca4d54da1dd7", questionBaseId: "91d7d8ec-a581-56ef-8467-ca4d54da1dd7", questionBase: {…}, choices: Array(4
Js.log
我发现一个对象
{__typename: "MultipleChoiceQuestion", id: "91d7d8ec-a581-56ef-8467-ca4d54da1dd7", questionBaseId: "91d7d8ec-a581-56ef-8467-ca4d54da1dd7", questionBase: {…}, choices: Array(4)}choices: (4) [{…}, {…}, {…}, {…}]
使用如下所示的graphql查询:
module Fields = [%graphql
{|
fragment TestFields on Test {
questions {
__typename
...on LongAnswerQuestion {
...LongAnswerQuestionFields
}
...on MultipleChoiceQuestion {
...MultipleChoiceQuestionFields
}
...on TrueFalseQuestion {
...TrueFalseQuestionFields
}
...on FillInTheBlankQuestion {
...FillInTheBlankQuestionFields
}
}
|}
];
多态变体正在返回:
{__typename: "MultipleChoiceQuestion", id: "91d7d8ec-a581-56ef-8467-ca4d54da1dd7", questionBaseId: "91d7d8ec-a581-56ef-8467-ca4d54da1dd7", questionBase: {…}, choices: Array(4)}choices: (4) [{…}, {…}, {…}, {…}]
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客户端”:“1.0.0-beta.0”
和“@reasonml community/graphql ppx”:“1.0.1”