У меня есть div
с условным классом, который хорошо работает при загрузке приложения, но не обновляется при изменении данных хранилища.
Код в моем компоненте vue выглядит следующим образом
<span class="week-day"
v-bind:class="{ complete: isDayComplete(day) }"
v-for="day in daysInWeek"
v-bind:data-day="day"
> </span>
И у меня есть ...mapGetters(['isDayComplete'])
в моем computed
объекте.
getter
выглядит следующим образом
isDayComplete(state) {
return (day) => {
console.log(`called isDayComplete(${day})`)
const formattedDay = moment(day, 'DD/MM/YYYY').format('YYYY-MM-DD');
if (state.daysData[formattedDay]) {
if (state.daysData[formattedDay].meals.length > 0) {
console.log(`day ${day} is complete`);
return true;
} else {
console.log(`day ${day} is NOT complete`);
return false;
}
} else {
console.log(`no data for day ${day}`);
return false;
}
}
},
Я обновляю данные о еде в mutation
updateMeals(state, meals) {
_.forEach(meals, (meal) => {
state.daysData[meal.day].meals.push(meal);
});
}
И у меня есть action
, который фиксирует эту мутацию
loadMeals({ state, commit }) {
return new Promise((resolve, reject) => {
get.meals.from.api()
.then((response) => {
commit('initDaysData');
commit('updateMeals', response.data.data);
return resolve();
})
.catch(reject);
});
}
Так что всякий раз, когда я звоню loadMeals
, класс не обновляется, если один день меняет свой статус (завершено/не завершено).Если я перезагружаю страницу, класс устанавливается правильно.
Что я делаю не так?Спасибо!