Fetch запрос отправляется дважды
Результат мутации должен обновлять данные без лишнего запроса на сервер, не понимаю, что нужно исправить, чтобы данные не фетчились дважды, а брались из кэша.
const [createEvent, { loading }] = useMutation(CREATE_GOOD_MUTATION, {
variables: values,
update(proxy, result) {
// TODO: remove goods from cache
const data = proxy.readQuery({
query: FETCH_ITEMS_QUERY,
});
let newData = [...data.events];
newData = [result.data.events, ...newData];
proxy.writeQuery({
query: FETCH_ITEMS_QUERY,
data: {
...data,
events: {
newData,
},
},
});
},
onError(err) {
setErrors(err.message);
},
});
Мутация на создание нового товара:
CREATE_GOOD_MUTATION = gql`
mutation createEvent(
$title: String!
$description: String!
$price: String!
$autor: String!
$pageNumber: String!
$publishYear: String!
) {
createEvent(
eventInput: {
title: $title
description: $description
price: $price
autor: $autor
pageNumber: $pageNumber
publishYear: $publishYear
}
) {
title
description
price
}
}
`;
Запрос на вывод всех товаров:
FETCH_ITEMS_QUERY = gql`
query events {
events {
id
title
description
price
}
}
`;
Мне необходимо отправлять fetch один раз, при добавлении нового товара, а сам вывод товаров должен происходить из кэша, без дополнительного запроса.
