Also im Grunde möchte ich meine UI nach einer Mutation aktualisieren, aber das war wirklich ein Schmerz, seit ein paar Tagen fest.Apollo Client Update nach Mutation kann nicht über Original-Ergebnis zuordnen?
Einige meiner Komponenten basieren auf meiner Stammabfrage und bilden die Ergebnisse ab.
Immer wenn ich eine neue Ressource erstelle und meine Root-Abfrage aktualisiere, werden die ursprünglichen Ergebnisse nicht mehr geladen, was eine can't read property map of undefined
verursacht, weil das Ergebnis nicht mehr da ist. Das Hinzufügen eines Schecks tut nichts, es wird nur für immer geladen.
Dies ist meine Mutation:
export const withCreateLink = graphql(createLink, {
// Mutate normally gets passed as prop to wrapped component
props({ownProps, mutate}) {
return {
// But for updating the store we're actually hijacking mutate to a custom function
createLink(url, description, group) {
return mutate({
variables: {
url,
description,
group
},
optimisticResponse: {
createLink: {
__typename: 'Link',
id: -1,
url,
description,
group: {
id: group
}
}
},
update: (proxy, mutationResult) => {
const query = getAllGroups;
const data = proxy.readQuery({query});
data.allGroups.forEach((groupData) => {
if(groupData.id == group)
groupData.links.push(mutationResult.data.createLink);
});
proxy.writeQuery({
query,
data
})
}
})
}
}
}
});
Ich möchte nur einfach meine UI aktualisieren, indem nur die Gruppe erfrischend, dass meine Ressource hinzugefügt wurde. Kann mir jemand helfen?
Dies ist die Standardeinstellung seit 1.0. Sie sollten also kein DataIdFromObject bereitstellen. – helfer