Как правильно обновить кэш в Apollo?

Обновляю кэш после мутации следующим образом:
<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:
5cf8ed702600e211505336.png
Что содержалось в data до мутации внутри Query:
5cf8edabb448a540976159.png
Как стала выглядеть data после мутации:
5cf8ee068f118223818957.png

Что тут могло пойти не так?
  • Вопрос задан
  • 500 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы