Я хочу, чтобы пользовательский интерфейс моего приложения обновлялся после запуска удаления мутации в компоненте реагирования apollo. Операция удаления прошла успешно, но пользовательский интерфейс не обновился после удаления мутации. Ниже приведена копия моего кода, есть что-то, что я не правильно понимаю?
const deleteRoom = async (roomId, client = apolloClient) => {
const user = await getUserDetails();
const deleteResponse = await client.mutate({
mutation: DELETE_ROOM,
name: 'deleteRoom',
variables: {
roomId,
},
update: (cache, { data: roomDelete }) => {
const data = cache.readQuery({
query: GET_ROOMS_QUERY,
variables: {
location: user.location,
office: '',
page: 1,
perPage: 8,
},
});
data.allRooms.rooms = data.allRooms.rooms.filter(
room => room.id !== roomDelete.deleteRoom.room.id,
);
console.log(data, '======');
cache.writeQuery({
query: GET_ROOMS_QUERY,
data,
});
},
});
return deleteResponse;
};
Я ожидал, что пользовательский интерфейс будет обновлен после выполнения удаления, однако пользовательский интерфейс не будет обновлен, пока я не выполню принудительное обновление.
N: B
Когда я консоль регистрирую данные, они фактически удаляют удаленные данные после фильтрации их из массива. Обновленные данные - это то, что я записываю обратно в кеш