NativeScript 4.1 с Angular: модальное представление с навигацией может привести к проблемам с маршрутизатором, поэтому некоторые страницы больше не отображаются - PullRequest
0 голосов
/ 12 июня 2018

Примечания к выпуску NativeScript 4.1 показывают, что модальные представления теперь также поддерживают навигацию при использовании NativeScript с Angular.

Я пробовал пример проекта https://github.com/NativeScript/nativescript-sdk-examples-ng, но, похоже, все еще есть некоторые проблемы с модальной навигациейс использованием NativeScript с Angular.

Не могли бы вы помочь мне решить эту проблему или указать лучший пример?Большое спасибо!

Как воспроизвести:

  1. убедитесь, что установлен NativeScript 4.1 *
  2. пример клона и запустите его в iPhone или iPhone Simulator

    git clone https://github.com/NativeScript/nativescript-sdk-examples-ng cd nativescript-sdk-examples-ng / tns run ios --emulator

  3. Будет показан список «Образцы кода NativeScript»

  4. прокрутите вниз до строки «Модальная страница» и коснитесь ее -> отобразится страница «Модальная страница»

  5. коснитесь строки «Навигация по модальной странице» -> страница «Модальная страница»будет отображаться навигация по страницам
  6. нажмите кнопку «ПОКАЗАТЬ МОДАЛЬ» -> страница «МОДАЛЬНЫЙ ВИД» будет представлена ​​в виде модального вида, скользящего снизу
  7. нажмите кнопку «Следующая страница» ->появится страница «Вторая модальная страница»
  8. нажмите кнопку «ЗАКРЫТЬ МОДАЛЬ» -> модальное представление исчезнет при перемещении назад вниз, и страница «Модальная навигация по страницам» снова станет видимой
  9. нажмите кнопку «Назад» в левом верхнем углу -> страница «Модальная навигация по страницам» исчезнет вправо и страница «Модальные страницы»age "снова становится видимым, и следующая ошибка регистрируется в терминале , но ожидается, что эта ошибка не появляется:

    Файл CONSOLE ERROR: /// app / tns_modules / @ angular/core/bundles/core.umd.js:1590:24: ОШИБКА Ошибка: Uncaught (в обещании): Ошибка: в настоящее время в навигации назад страницы - компонент должен быть присоединен, а не активирован.activWith @ file: ///app/tns_modules/nativescript-angular/router/page-router-outlet.js: 212: 28 [угловой] activRoutes @ file: /// app / tns_modules / @ angular / router / bundles / router.umd.js: 4269: 52 [угловой] файл: ///app/tns_modules/@angular/router/bundles/router.umd.js: 4221: 33 [угловой] forEach @ [собственный код] [угловой] activChildRoutes @file: ///app/tns_modules/@angular/router/bundles/router.umd.js: 4220: 36 [angular] activRoutes @ file: ///app/tns_modules/@angular/router/bundles/router.umd.js: 4241: 41 [угловой] файл: ///app/tns_modules/@angular/router/bundles/router.umd.js: 4221: 33 [угловой] forEach @ [собственный код] [угловой] activChildRoutes @ file: ///app/tns_modules/@angular/router/bundles/router.umd.js:4220:36 [angular] активировать @ file: ///app/tns_modules/@angular/router/bundles/router.umd.js: 4142: 33 [angular] fil

  10. Нажмите на любую строку, например, «Модальная навигация по страницам» -> ожидается, что, например, страница «Модальная навигация по страницам» будет показана снова, , ноПользовательский интерфейс не меняется. Вместо этого яf Например, нажав строку «Пример модальной страницы» на терминале снова регистрируется следующая ошибка, описанная выше.

Таким образом, похоже, маршрутизатор больше не работает.

Обходной путь: в файле nativescript-sdk-examples-ng / app / modal-page / modal-page-navigation / second-modal-view-content.component.ts заменить

onClose(): void {
    this._params.closeCallback("return value");
}

с

onClose(): void {
    this.router.back();
    setTimeout(() => {
        this._params.closeCallback("return value");
    }, 1000);
}

Обходной путь сначала вернется на одну страницу в модальном представлении, а затем отклонит модальное представление.Из-за ожидания в течение 1 секунды пользователь может видеть это поведение, которое не является желательным.Если не ждать достаточно долго, обходной путь не сработает (например, 100 мс кажется недостаточно).

Большое спасибо за вашу помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...