Next () не вызывается beforeRouteUpdate с использованием того же компонента - PullRequest
2 голосов
/ 20 февраля 2020

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

Но если компонент уже загружен и пользователь нажимает другую ссылку для загрузки других данных, метод next() не вызывается.

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

https://codepen.io/spqrinc/pen/YzXGGGL

1 Ответ

1 голос
/ 20 февраля 2020

Из документов :

Обратите внимание, что beforeRouteEnter - единственный охранник, который поддерживает передачу обратного вызова следующему. Для beforeRouteUpdate и beforeRouteLeave, this уже доступен, поэтому передача обратного вызова не нужна и поэтому не поддерживается

Так что next() в beforeRouteUpdate не может принять обратный вызов потому что у вас уже есть доступ к экземпляру в this. Все, что вы бы сделали с vm в этом обратном вызове, можно сделать без него, используя this:

beforeRouteUpdate(to, from, next) {
  alert("Reloaded");
  // `this` works
  next();
}
...