Как отладить Угловая ошибка - Ошибка: Uncaught (в обещании): TypeError: Невозможно прочитать свойство 'data' из null - PullRequest
0 голосов
/ 15 июня 2019

Впервые на Angular, и при запуске отладчика в VS Code я получаю это в консоли отладки.В проекте все работает нормально, я могу войти в систему, выполнить различные действия на сайте и т. Д.

Как мне отладить это, чтобы выяснить, где эта переменная равна нулю и / или используется иисправить это, так что я не вижу это сообщение об ошибке?

Ошибка: Uncaught (в обещании): Ошибка типа: Не могу прочитать свойство 'data' из null

Я могуПосмотрите из bebugger, он показывает строку в core.js: 15724, то есть это

unction defaultErrorLogger(console) {
  var values = [];
  for (var _i = 1; _i < arguments.length; _i++) {
    values[_i - 1] = arguments[_i];
  }
  console.error.apply(console, __spread(values)); // error from here
}

Вот что я вижу в отладчике, когда раскрываю ошибку

ОШИБКА core.js: 15724 Ошибка: невыполненная (в обещании): TypeError: Невозможно прочитать свойство 'data' из null core.js: 15724 Сообщение: "Uncaught (в обещании): TypeError: Невозможно прочитать свойство 'data' из null \ nTypeError: Невозможно прочитать свойство 'data' из null \ n в AuthGuard.canActivate (http://localhost:4200/main.js:147:37)\n в http://localhost:4200/vendor.js:73690:55\n в Observable._subscribe (http://localhost:4200/vendor.js:111951:21)\n в Observable._trySubscribe (http://localhost:4200/vendor.js:110290:25)\n в Observable.subscribe (http://localhost:4200/vendor.js:110276:22)\n вTakeOperator.call (http://localhost:4200/vendor.js:118625:23)\n в Observable.subscribe (http://localhost:4200/vendor.js:110271:22)\n в http://localhost:4200/vendor.js:121541:31\n в subscribeToResult (http://localhost:4200/vendor.js:121718:84)\n в MergeMapSubscriber._innerSub (http://localhost:4200/vendor.js:116475:90)" обещание:ZoneAwarePromise { zone_symbol__state: 0, __zone_symbol__value: TypeError: Невозможно прочитать свойство 'data' из null \ n…} rejection: TypeError: Невозможно прочитать свойство 'data' из нулевого стека: "Ошибка: Uncaught (в обещании): TypeError:Не удается прочитать свойство 'data' из null \ nTypeError: Невозможно прочитать свойство'data' of null \ n в AuthGuard.canActivate (http://localhost:4200/main.js:147:37)\n в http://localhost:4200/vendor.js:73690:55\n в Observable._subscribe (http://localhost:4200/vendor.js:111951:21)\n в Observable._trySubscribe (http://localhost:4200/vendor.js:110290:25)\n в Observable.подписаться (http://localhost:4200/vendor.js:110276:22)\n на TakeOperator.call (http://localhost:4200/vendor.js:118625:23)\n на Observable.subscribe (http://localhost:4200/vendor.js:110271:22)\n на http://localhost:4200/vendor.js:121541:31\n на subscribeToResult (http://localhost:4200/vendor.js:121718:84)\n на MergeMapSubscriber._innerSub(http://localhost:4200/vendor.js:116475:90)\n at resolPromise (http://localhost:4200/polyfills.js:3189:31)\n при resolPromise (http://localhost:4200/polyfills.js:3146:17)\n в http://localhost:4200/polyfills.js:3250:17\n в ZoneDelegate.push ../ node_modules ... задача: ZoneTask {_zone: Zone, runCount: 0, _zoneDelegates: null,…} зона: Zone {_parent: Zone, _name: "angular", _properties: Object, ...} __proto : Object {constructor:, name: "Error", message: "",…}

Я знаю, что в этом методе в auth.guard.ts в 1-й строке я вижу, что
" firstChild "равен нулю

canActivate(next: ActivatedRouteSnapshot): boolean {
    const roles = next.firstChild.data.roles as Array<string>;
    if (roles) {
      const match = this.authService.roleMatch(roles);
      if (match) {
        return true;
      } else {
        this.router.navigate(['members']);
        this.alertify.error('You are not authorized to access this area');
      }
    }

    if (this.authService.loggedIn()) {
      return true;
    }

    this.alertify.error('You shall not pass!!!');
    this.router.navigate(['/home']);
    return false;
  }

1 Ответ

0 голосов
/ 15 июня 2019

Вы можете отладить вашу угловую ошибку, зайдя в меню разработчиков в своем браузере, нажав клавишу F12, затем перейдя в раздел «Источники» (рядом с консолью): там вы найдете файлы Typescript, откроете нужный файл и сможете установить точки останова, а затем запуститьдля отладки, как показано здесь , наслаждайтесь :)!

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