Ich schreibe eine Deletionsmutation. Die Mutation sollte einen Key
Knoten löschen und die viewer
‚s keys
Sammlung aktualisieren (ich verwende Relay-Stil Sammlungen. viewer { keys(first: 3) { edges { node { ... }}}}
Optimistisches Update für eine Deletionsmutation
Auf Anraten here, ich bin die FIELDS_CHANGE
Config der Einfachheit halber verwendet, und es ist tatsächlich arbeiten : Jetzt
export class DeleteKeyMutation extends Relay.Mutation {
static fragments = {
viewer:() => Relay.QL`
fragment on Viewer { id }
`,
};
getMutation() { return Relay.QL`mutation {deleteKey}`; }
getVariables() {
return {
id: this.props.id,
};
}
getFatQuery() {
return Relay.QL`
fragment on DeleteKeyPayload {
viewer { keys }
}
`;
}
getConfigs() {
return [
{
type: 'FIELDS_CHANGE',
fieldIDs: {
viewer: this.props.viewer.id,
},
},
];
}
}
, wie soll ich eine optimistische Mutation für dieses schreibe ich habe verschiedene Ansätze ausprobiert, aber keiner arbeitete
Leider scheint diese Lösung nicht zu funktionieren: 1) Ich glaube, es gibt einen Tippfehler im Mutationsfragment, das sein sollte '{id, keys {cores (first ...'; 2) Eine Warnung erscheint wann das optimistische Update wird hinzugefügt: 'warning.js: 44 Warnung: RelayQueryWriter: Konnte keinen Typnamen für den Datensatz' Vmlld2VyOm1l' finden. (Er verschwindet, wenn ich '__typpename: 'Viewer'' zur optimistischen Antwort hinzufüge); und 3) leider keine Aktualisierung erfolgt. Soll ich ein Problem damit auftun? –
Ich schrieb optimistische Antworten für Update-Mutationen, aber nicht für Lösch-Mutationen –
Debugging Schritt für Schritt, sehe ich, dass der RelayQueryWriter '_writeConnection()' nicht im optimistischen Update (wie es in der endgültigen Aktualisierung tut), aber statt '_writeLink()' im 'keys' Feld. Anscheinend haben die Metadaten des 'Schlüssel'-Feldes in der Abfrage' isConnection: false', irgendeine Idee warum? –