Når Relay ikke kan lage clientMutationId

2016-12-30
sigurdga

Vi er inne i en serie av feilmeldinger fra Relay som ikke alltid er like enkle å forstå seg på. Nå skal vi se hva Relay egentlig klager på når den sier at den ikke kan lage en clientMutationId:

Cannot set property ‘clientMutationId’ of undefined

Eller:

Cannot create property ‘clientMutationId’ on string ‘[…]’

Den første betyr at du ikke returnerer noe fra mutateAndGetPayload, og den andre betyr at du returnerer en streng som ikke kan brukes av Relay til å lage clientMutationId.

Om du bare har en “lokal” database-id, som du vil bruke til å lage en globalID som Relay kan fjerne i frontend, kan du bruke toGlobalId(), som tar inn et typenavn og en lokal id og returnerer en global ID. Dette gjør du i outputFields.