Проблема с 4-мя угловыми событиями Ionic - PullRequest
0 голосов
/ 03 октября 2018

Я создал простое базовое приложение, используя это руководство, и оно кажется очень убедительным и почти работающим.Несколько вещей, которые вы должны знать, прежде чем я объясню проблему: Я понимаю, что она все еще находится в бета-версии, поэтому возможны ошибки, и я очень плохо знаком с ионной и угловой

Моя проблемаэто очень просто, но это очень сложно объяснить, в любом случае я постараюсь собрать все вместе.

Как объяснялось ранее, я использовал упомянутый выше учебник для создания базового приложения с 3 страницами входа, регистрации и панели инструментов.поэтому я предполагаю, что когда страница в ионной загрузке всегда вызывает событие ловушки угловой страницы, в моем случае это ngOnInit, и проблема связана с этим событием.Вот шаги, чтобы воссоздать мою проблему и помочь вам понять, где я застрял

  1. Запустите приложение и загрузите страницу входа в первый раз, и ngOnInit страницы входа успешно вызывается.
  2. Iперейдите на страницу регистрации, и ngOnInit страницы регистрации успешно вызывается каждый раз, когда я перехожу на эту страницу с помощью логина.
  3. На странице регистрации есть кнопка «Назад», с помощью которой можно перейти на страницу входа, а когда я вернусь к входу в систему, ngOnInit входастраница НЕ вызвана.Я хочу, чтобы в этот момент вызывался ngOnInit.
  4. То же самое происходит, когда я перехожу на страницу Dashboard и возвращается на страницу входа, ngOnInit для входа на страницу входа вызывается NOT .Опять же, я хочу, чтобы в этот момент вызывался ngOnInit.

Я надеюсь, что прояснил свою проблему.

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

У меня есть 2 вопроса:

  1. Это ошибка??если да, может кто-нибудь, пожалуйста, направьте меня в правильном направлении, чтобы я мог это исправить (что невозможно;)), или я могу, по крайней мере, уведомить парней из ionic, чтобы это исправить.

  2. Если егоне ошибка, тогда, пожалуйста, помогите мне понять, что мне здесь не хватает (пример или руководство приветствуются), что мне следует сделать, чтобы вызвать ngOnInit.


Моя версия Ionic

>ionic info
Ionic:

   ionic (Ionic CLI)          : 4.1.2 (C:\Users\Me\AppData\Roaming\npm\node_modules\ionic)
   Ionic Framework            : @ionic/angular 4.0.0-beta.12
   @angular-devkit/core       : 0.7.5
   @angular-devkit/schematics : 0.7.5
   @angular/cli               : 6.1.5
   @ionic/ng-toolkit          : 1.0.8
   @ionic/schematics-angular  : 1.0.6

Cordova:

   cordova (Cordova CLI) : 8.1.1 (cordova-lib@8.1.0)
   Cordova Platforms     : not available
   Cordova Plugins       : not available

System:

   Android SDK Tools : 26.1.1 (C:\Users\Me\AppData\Local\Android\Sdk)
   NodeJS            : v8.12.0 (C:\Program Files\nodejs\node.exe)
   npm               : 6.4.1
   OS                : Windows 10

Заранее спасибо


РЕДАКТИРОВАТЬ: Для лучшего понимания вопроса, который я пытаюсьукажите на скриншот ниже logs

Ответы [ 3 ]

0 голосов
/ 03 октября 2018

Приветствие,

NgOnInit будет срабатывать при создании определенной страницы в памяти,

не будет срабатывать при возврате на уже созданную страницу.вот почему ваш ng onlint получает триггер в самый первый раз при создании страницы.

Почему вы используете метод события Angular lifecyle?Вы можете использовать событие жизненного цикла Ionic для своего случая.

Ionic имеет собственный набор методов событий жизненного цикла.

Пример: в вашем случае вы можете использовать событие * ionViewWillEnter .который будет срабатывать каждый раз, когда вы посещаете страницу.Вам не нужно уничтожать страницу для этой конкретной цели

, а другие события ионного жизненного цикла:

  • ionViewDidLoad
  • ionViewWillEnter

  • ionViewDidEnter

  • ionViewWillLeave

  • ionViewDidLeave

  • ionViewWillUnload

0 голосов
/ 30 июля 2019

Я четко понял ваш запрос / проблему, вызвавшую ту же проблему, с которой столкнулся последние пару дней.наконец-то я решил эту проблему ... так что я проанализировал, что вы уже знаете, что теперь ионная маршрутизация завершена по угловой схеме, но здесь в ионной системе вы должны использовать ионные команды для навигации по странице.

ВВаш случай, если у вас есть 3 страницы входа, регистрации и тире ... поэтому, когда вы переходите со страницы входа на панель мониторинга, вы все должны следовать приведенным ниже командам для навигации по страницам

 this.navCtrl.navigateRoot(['dashboard']);

и при возвращении

this.navCtrl.navigateBack(['login']);

и когда вы переадресовываете страницу входа на страницу регистрации

this.navCtrl.navigateForward(['dashboard']);

, удалите традиционную команду угловой маршрутизации для навигации по страницам и используйте эту команду, я уверен, она будет работать так же, как и я.

все еще может быть полезная документация по этому вопросу от ионной команды.

thx

0 голосов
/ 03 октября 2018

ngOnInit get вызывается при инициализации компонента, и ваш компонент уже создан, когда вы уходите и возвращаетесь к нему.

Чтобы вызвать OnInit, вам нужно уничтожить компонент или использовать другую техникучтобы запустить ваш скрипт, когда вы вернетесь на страницу.

Вопрос будет в том, чего вы хотите достичь?

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