Вам нужно будет присвоить item
с сервера (после обновления) хранилищу, что-то вроде:
$post(..., { item_id: itemId }).then(function(response) {
this.$store.commit('items/SET_ITEM', response.data)
})
Где мутация items/SET_ITEM
зацикливает элементы в текущем массиве и обновляетэлемент, если id
соответствует.
let itemToUpdate = this.items.forEach(function(i) {
if (i.id === item.id) {
i = item
}
})
Тогда он должен корректно мутировать хранилище, отправляя обновление реквизита и вызывая повторный рендеринг вида с новым расчетом isFavorite
.
В качестве альтернативы, если передаваемый вами itemId
может быть использован, у сервера нет оснований что-либо менять, просто вместо этого передайте его, например:
$post(..., { item_id: itemId }).then(function() {
this.$store.commit('items/UPDATE_FAVORITE', { item: itemId })
})
И теперь вы можетепросто добавьте мутацию, которая переключает любимую, в основном:
this.items.forEach(function(i) {
if (i.id === item) {
i.is_favorite = !i.is_favorite
}
})