Обновляю кэш после мутации следующим образом:
<Mutation
mutation={ADD_PRICE_CATEGORY}
update={(cache, payload) => {
let data = cache.readQuery({
query: GET_PRICE_CATEGORY_TEMPLATES
});
const currentPriceCategoryTemplate = data.priceCategoryTemplate.getList.list.find(
item => item.id === props.currentItem.id
);
currentPriceCategoryTemplate.priceCategories = [
...currentPriceCategoryTemplate.priceCategories,
path(['data', 'priceCategory', 'add'], payload)
];
data = {
...data,
priceCategoryTemplate: {
...data.priceCategoryTemplate,
getList: {
...data.priceCategoryTemplate.getList,
list: [
...data.priceCategoryTemplate.getList.list.filter(
item =>
item.id !==
currentPriceCategoryTemplate.id
),
currentPriceCategoryTemplate
]
}
}
};
cache.writeQuery({
query: GET_PRICE_CATEGORY_TEMPLATES,
data
});
props.setIsNewPriceCategory(false);
}}
>
Что содержится в data внутри update:
Что содержалось в data до мутации внутри Query:
Как стала выглядеть data после мутации:
Что тут могло пойти не так?