Ich habe die folgende Service-Klasse:Direkt Cache Access in Apollo Angular
const DeleteUserMutation = gql `
\t mutation($user_id: ID!) {
\t \t deleteUser(id: $user_id) {
\t \t \t id
\t \t }
\t }
`;
@Injectable()
export class UserService {
constructor(private apollo: Apollo) {}
deleteUser(userId: string) {
return this.apollo.mutate({
mutation: DeleteUserMutation,
variables: {
user_id: userId
},
update: (proxy, mutationResult) => {
proxy.writeQuery({
query: DeleteUserMutation,
data: {
deleteUser: {
id: userId,
__typename: 'User'
}
},
variables: {
user_id: userId
}
});
},
})
}
}
wobei ich versuche, einen Benutzer von meinem Server zu löschen. Die Mutation funktioniert tatsächlich und wird erfolgreich auf dem Server ausgeführt, aber der Cache wird nie aktualisiert. Ich bin mir nicht sicher, wo ich mit meinem update
Teil oben falsch liege.
Danke, ich werde das versuchen. Aber würde das funktionieren, selbst wenn die 'allUsers'-Abfrage nicht die ursprüngliche Abfrage war, die zu der Liste der Benutzer führte, die sich überhaupt im Laden befanden? – Sammy
Also habe ich versucht, und die Antwort ist nein ... Ich denke, was ich brauche, kann dann mit 'writeFragment' gelöst werden? – Sammy