Enroller
@Enroller
Немного авантюрист

Почему не срабатывает computed свойство?

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

Контекст проблемы :
Пишу небольшую форму с валидацией и прогресс баром чисто чтобы раскурить Vue
Проблема возникает, когда я пытаюсь использовать computed для вычисления количества верифицированных полей и расчёта ширины скроллбара.
Он не срабатывает.
Насколько я понимаю, я читаю реактивные данные, когда иду по
массиву

this.form.forEach((item)=>{
              if(!item.valid){
                  complete++;
              }
           });

т,е геттер я таки вызываю.. Но видимо я понимаю не правильно
Пишу просто подтягивая Vue и без компонентов, так что заранее извиняюсь читать может быть тяжело

UPD: Кратко суть проблемы из комментариев:
Я доклеивал поля в dataхуком beforeMount. Реактивность же инициализируется намного раньше.
Для этого стоит использовать beforeCreate
  • Вопрос задан
  • 300 просмотров
Решения вопроса 1
notiv-nt
@notiv-nt
valid: false к каждому в form[]
и if(!item.valid){ знаком не ошиблись?

5d81121f394a4466652655.png
form.valid вы не ставите свойство реактивным, так что надо изначально его ставить в data
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@veremii
говнокодю на js
Попробуйте использовать this.$set(object, 'newPropName', value) и будет норм.
Ответ написан
Ваш ответ на вопрос

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

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