@kirill-93

Баги во vue.js?

Привет, использую vuex для хранения данных. В мутациях добавил метод, который наполняет массив числами. Перед наполнением каждое значение привожу к числу parseInt(). Но когда получаю этот массив, все числа в нем - строки. Кто сталкивался?
Следующий баг связан с изменением данных. В том же vuex есть объект, где ключи - id продукта, а значение - сам продукт. При добавлении нового продукта в мутации делаю так
state.products[product.id] = product;
В коде приложения эти изменения не отслеживаются.
//Не работает вот так
<span v-if="$store.state.products[id]"></span>
//И вот так
computed: {
    productExists: function(id) {
        return this.$store.state.products[id];
    }
}

Вообще какая мистика с этими отслеживаниями. Оно то работает, то не работает. Проверил - работает, пошел и везде написал так, а потом вдруг не работает и снова везде менять. Очень выматывает...

Баги это или я что-то не так делаю?
  • Вопрос задан
  • 244 просмотра
Решения вопроса 1
Fragster
@Fragster
помогло? отметь решением!
При добавлении нового продукта в мутации надо присваивать свойству обновленный массив или пользоваться переопределенными методами для сохранения реактивности, об этом пишут в документации
В данном случае я бы отказался от хранения по ключам и добавил бы метод получения продукта по id через обход массива (если, конечно, продуктов там не тысячи)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы