2017-05-16 4 views
0

Dieser Fehler wird angezeigt, wenn versucht wird, eine Compat-Modus-Mutation zu speichern. Es scheint, dass es mit dem Relay-spezifischen Teil der Abfrage (Kante/Knoten) zu tun haben kann. Wie können wir das beheben?Relay Modern Compat-Modus: undefined ist kein Objekt (Bewertung 'etikettierterNode [CLASSIC_NODE]')

Abfrage ist minimal aktualisiert von dem, was in Relay Classic funktioniert - nur die newWorkoutEntryEdge wurde ausgearbeitet, um die Knoten und untergeordneten Elemente abzurufen.

Mutationscode:

const mutationQuery = graphql` 
mutation AddWorkoutEntryMutation($input: AddWorkoutEntryInput!, 
    $dateOfEntry: String!) { 
    AddWorkoutEntry(input: $input) { 
    clientMutationId 
    newWorkoutEntryEdge { 
     node { 
     id 
     category 
     description 
     notes 
     countOfRepetitions 
     } 
    } 
    userData { 
     id, 
     workoutEntries(first: 10000, 
      dateOfEntries: $dateOfEntry) 
     { 
     edges { 
      node { 
      id 
      category 
      description 
      notes 
      countOfRepetitions 
      } 
     } 
     } 
    } 
    } 
}` 
; 
export default function AddWorkoutEntryMutation(
    notes: string, 
    countOfRepetitions: string, 
    dateOfEntry: string, 
    standardWorkoutID: string, 
    userDataID: string) 
    { 
    const variables = { 
    input: { 
     notes, 
     countOfRepetitions, 
     dateOfEntry, 
     standardWorkoutID 
    }, 
    // possibly redundant 
    dateOfEntry 
    }; 
    commitMutation(Relay.Store, { mutationQuery, variables }); 
} 

enter image description here

Antwort

0

Danach durch den Relay-Code Tracing, erkennen ich, ich mit mutationQuery als Feld ein Objekt vorging, anstatt mutation, so Relay nicht finden kann, das erwartete Mutationsfeld.

dieses

commitMutation(Relay.Store, { mutationQuery, variables }); 

dieser

commitMutation(Relay.Store, { mutation, variables }); 

löste das Problem ändern.

Verwandte Themen