@kiranananda

V-for v-bind:class не работает если переменная undifined?

Здравствуйте!

Вообщем натолкнулся на такой трабл. Выставляю доп классы в цикле v-for, но если переменная не задана, то-есть, то когда я ее устанавливаю реактивность не работает. Потом уже когда срабатывают другие условия он и класс мой тоже обновляет.
Дело в том что данные беру с пхп, а там обычный запрос к бд и не совсем хотелось там дополнительно добавлять еще и переменные для классов, как то не красиво. Вот не знаю как реализовать грамотно это...
Можно добавить эти переменные перед рендерингом, но в данном случае использую не ajax а props, не нашел нужного хука что бы сделать изменения...
v-bind:class="{ 'selected': file.selected }
            selectFile: function (file) {
                //эта переменная не была установлена. Если установить перед рендерингом то все ок...
                file['selected'] = true;
            },
  • Вопрос задан
  • 400 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
Устанавливайте значение с помощью $set.

Т.е., вместо

file['selected'] = true

сделайте

this.$set(file, 'selected', true)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
bootd
@bootd
Гугли и ты откроешь врата знаний!
Ну если вы используете свойство копонента, то задайте его по умолчанию на нужное внутри компонента.
props: {
myProp: {
type: // тип переменной,
default: false // или другое значение
}
}
Ответ написан
Ваш ответ на вопрос

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

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