@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];
    }
}

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

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

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

Похожие вопросы