Я не уверен, можно ли заказать в локальном кеше с помощью apollo. Однако я бы решил проблему следующим образом:
data: {
getProducts: [...getProducts, newProduct]
}
В этой строке кода вы добавляете все исходные продукты, а затем новый продукт в конец массива, который вы записываете в свой кеш. .
Быстрый способ исправить это - отсортировать массив перед записью в кеш. Следующее сравнение сортирует массивы по атрибуту имени объекта
function compare(a, b) {
// Use toUpperCase() to ignore character casing
const productA = a.name.toUpperCase();
const productB = b.name.toUpperCase();
let comparison = 0;
if (productA > productB) {
comparison = 1;
} else if (productA < productB) {
comparison = -1;
}
return comparison;
}
Затем используйте его в своем массиве для сортировки.
data: {
getProducts: [...getProducts, newProduct].sort(compare)
}