@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 функция и потом другая, не дождавшись добавления параметров. Из-за этого одна функция затирает данные другой...

Есть ли возможность заставить их работать по очереди?
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 1
yarkov
@yarkov Куратор тега Vue.js
Помог ответ? Отметь решением.
Есть ли возможность заставить их работать по очереди?

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

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

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