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

Как дождаться обновления query параметров при использовании $router.push в watch функциях?

Имеется следующий код:

watch: {
		ActivePage(value){
			let RouterParams = {};
			let RouterQuery = {
				...this.$route.query
			};

			if(value === 1 && RouterQuery.hasOwnProperty('page')) {
				delete RouterQuery.page;
			}

			if(value > 1) {
				RouterQuery.page = value;
			}

			RouterParams = {
				query: RouterQuery
			};

			this.$router.push(RouterParams);
		},
		PerPage(value){
			let RouterParams = {};
			let RouterQuery = {
				...this.$route.query
			};

			if((value === this.PageCapacity.filters[0].value) && RouterQuery.hasOwnProperty('perpage')) {
				delete RouterQuery.perpage;
			}

			if(value !== this.PageCapacity.filters[0].value) {
				RouterQuery.perpage = value;
			}

			RouterParams = {
				query: RouterQuery
			};

			this.$router.push(RouterParams);
		}
	}


ActivePage и PerPage - входные параметры.

Если изменить сразу оба параметра, с помощью мутации(данные лежат во vuex и передаются в компонент с помощью геттеров), то сначала отработает одна watch функция и потом другая, не дождавшись добавления параметров. Из-за этого одна функция затирает данные другой...

Есть ли возможность заставить их работать по очереди?
  • Вопрос задан
  • 100 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Специализация Frontend-разработчик
    9 месяцев
    Далее
  • Stepik
    Игра на Vue.js
    1 неделя
    Далее
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
yarkov
@yarkov Куратор тега Vue.js
Помог ответ? Отметь решением.
Есть ли возможность заставить их работать по очереди?

Обновлять по очереди
Ответ написан
Ваш ответ на вопрос

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

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