Nativescript: неправильно работает навигация по страницам с ModalDialogService с использованием showModal - PullRequest
0 голосов
/ 14 февраля 2019

Проблема - у нас есть близкий обратный вызов на showModal, который в идеале должен перемещать пользователя на другую страницу.Однако, когда модальное диалоговое окно закрыто, пользователь перемещается обратно на базовую страницу, а не на страницу для навигации.

Таким образом, навигация, которая должна работать как «Логин» -> «Список сотрудников» работает как «Логин» -> «Список сотрудников» -> «Вход в систему» ​​(возвращается из-за дополнительной обработки дочернего маршрута)

Код для воспроизведения проблемы можетнайти по адресу https://play.nativescript.org/?template=play-ng&id=lrIrYT&v=5

Шаги для воспроизведения

  1. Приложение запускается на главном экране
  2. Нажмите на кнопку входа. Нажмите
  3. Появится всплывающее окно.Нажмите на кнопку Выбрать.
  4. Вы должны быть перенаправлены на страницу персонала.(в идеале) согласно навигации.
  5. Если вы правильно перенаправлены на страницу со списком сотрудников, пожалуйста, нажмите назад и перейдите на домашнюю страницу и повторите шаги с 1 по 4.
  6. Проблема, упомянутая выше, должна бытьвоспроизводится.

1 Ответ

0 голосов
/ 15 февраля 2019

По предложению @Nickliev

setTimeout (() => {this._routerExtensions.navigate (['/ staff-list', '10']);}, 1)

«Я предполагаю простое состояние гонки, когда закрывающий обратный вызов (иногда) срабатывает перед навигацией по маршруту (которая возвращается на домашнюю страницу). Таким образом, в этом случае модальный режим закрыт >>, вы переходите >> нативный сценарийнавигация (слишком поздно). Использование setTimout гарантирует, что код внутри будет выполнен на следующем проходе javascript (связан с VM) и, таким образом: модально закрыт >> навигация nativescript >> ваша навигация "

...