@andreysuha
Что то знаю

Почему не перещитывается computed property?

Есть такое вычисляемое свойство

formattedDate() {
            let date = this.date ? this.date : this.value;
            return date ? moment(date).format(this.getFormat) : date;
        }


date это свойство в data, при его изменении formattedDate не перещитываеться хотя само свойство date изменяется

https://codesandbox.io/s/vue-template-mqyo8

когда второй раз выбираешь дату то свойство не перещитывается. Само свойство в components/date-picker/index.vue

UPD если закрыть/открыть календарь (дважды нажать на инпут) то дату опять можно выбрать, но опять только один раз
  • Вопрос задан
  • 343 просмотра
Решения вопроса 1
dasnein
@dasnein
На самом деле, очень странно, что не работает ни при выносе из computed property в метод, ни при использовании this.$set. И forceUpdate не помог.

Единственный вариант, как получилось исправить – это завести реактивный проп formattedDate и туда ложить отформатированную дату в методе setSelectedDate.

Как-то так
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Shtucer
От слова "shit"?
Ответ написан
@veremii
говнокодю на js
Все очень интересно. Смею предположить что вы в переменной this.date храните объект, тем самым вы возвращаете ссылку! На объект this.date видимо.

Попробуйте написать как нибудь типа let date = this.date ? JSON.parse(JSON.stringify(this.date)) : ...
Если сработает как ожидалось - то у вас ошибка в архитектуре и нужно подумать над ней.

Также computed свойства кешируются, не забывайте об этом.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
МТС Москва
от 180 000 до 200 000 ₽
vStack Санкт-Петербург
от 90 000 ₽
Junto Москва
от 90 000 до 130 000 ₽
04 авг. 2020, в 09:02
65000 руб./за проект
04 авг. 2020, в 08:36
2000 руб./за проект
04 авг. 2020, в 06:54
5000 руб./за проект