ReasonML Полиморфный вариант при захвате Union в GraphQL ppx

У меня проблемы с союзами в ppx, интерпретирующими полиморфные варианты.

В моем браузере с помощью 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-client": "1.0.0-beta.0", и "@reasonml-community/graphql-ppx": "1.0.1",

0 ответов

Другие вопросы по тегам