await fetch()
возвращает объект Responseawait response.json()
или другие методы, в зависимости от типа получаемых данных. Обращаю внимание на await: response.json()
возвращает Promise, соответственно нужен awaitactions: {
async initialCityList({ commit }) {
const siteContacts = await fetch('/api/contacts')
commit('setSiteContacts', await siteContacts.json())
}
},
actions: {
async initialCityList({ commit }) {
const siteContacts = await axios.get('/api/contacts')
commit('setSiteContacts', siteContacts.data)
}
},
const index = arr.findIndex(n => n.id === id);
if (index !== -1) {
arr.splice(index, 1);
}
const newArr = arr.filter(n => n.id !== id);
for (let i = arr.length; i--;) {
if (arr[i].id === id) {
arr.splice(i, 1);
}
}
reduceRight
используется не совсем по назначения, как и оператор &&
):arr.reduceRight((_, n, i, a) => n.id === id && a.splice(i, 1), null);
let countDeleted = 0;
for (let i = 0; i < arr.length; i++) {
arr[i - countDeleted] = arr[i];
countDeleted += arr[i].id === id;
}
arr.length -= countDeleted;
arr.splice(0, arr.length, ...arr.filter(n => n.id !== id));
Как я понял, v-model в компоненте ProductRow обновляет почему-то не локальную копию item, а state у стора
data() { return { 'item': this.initialItem } }
Object.assign({}, this.initialItem)
. Или так: { ...this.initialItem }
.this.$root.$emit('eventing', data);
mounted() {
this.$root.$on('eventing', data => {
console.log(data);
});
}