Задать вопрос
@EVOSandru6

Как победить в Vue 2 рекурсию изменений связанных свойств — price, percent?

Привет, ребят. Подскажите - куда капнуть во Vue2.
Есть 2 свойства - price и percent.
Понятное дело они связаны общим расчетом, а также:
Меняем значение одного, сразу же меняется значение другого.
Пасу оба через watch.
При вводе в логах просто жесть.
Вероятно это рекурсия.
Как можно побороть этого зверя?
Тут что-то из коробки использовать или логику менять?

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

methods: {
   recalcPrice() {
      this.price = parseInt((this.totalPrice * this.percent) / 100)
      //...
    },
    recalcPercent() {
      this.percent = parseInt((this.price * 100) / this.totalPrice)
      //...
    },
},
watch: {
    price: function (val) {
      this.recalcPercent(val)
    },
    percent: function (val) {
      this.recalcPrice(val)
    },
 },
  • Вопрос задан
  • 108 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
@Kostik_1993
Web Developer
Уйти от вотчеров и использовать события инпута и методы для пересчета
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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