【问题标题】:NgZone no longer worksNgZone 不再有效
【发布时间】:2019-02-08 21:36:38
【问题描述】:

我的 NgZone 似乎不再工作了。我正在使用 Ionic、Angular 和 Firebase 构建应用程序。

它会产生一个错误:

未处理的承诺拒绝:缺少命令错误;区域:;任务:Promise.then;值:缺少命令错误未定义

我已经在我的项目中使用它几个月了,完全没有问题,我在很多地方使用它,但突然之间它不再起作用了。

我正常导入:

import { Component, Input, NgZone, ViewChild, Injectable } from '@angular/core';

在构造函数中

public zone: NgZone,

然后像这样引用它:

this.zone = new NgZone({});

this.afAuth.auth.onAuthStateChanged((user) => {
  this.zone.run(() => {
    if (user) {
      this.rootPage = HomePage
    } else {
      this.rootPage = LoginPage
      console.log("Not logged in")
    }
    this.splashScreen.hide();
  });
});

但它不再起作用了......

我的package.json 调用以下依赖项:

"zone.js": "0.8.18"

任何想法这可能意味着什么或我应该做什么?谢谢!

【问题讨论】:

  • 你使用的是什么版本的 Angular?
  • @PatricioVargas 我在ng-version: 6.1.1
  • 你可以尝试在构造函数中将其更改为私有而不是公共的吗?
  • 请删除这一行 this.zone = new NgZone({});

标签: javascript angular typescript ionic-framework ngzone


【解决方案1】:

请尝试按照以下步骤操作:

1- 导入 NgZone import { Component, NgZone, OnInit} from '@angular/core';

2- 在类内的构造函数中 constructor(private ngZone: NgZone) {}

3- 删除这一行this.zone = new NgZone({});

4- 保留这些代码行

`this.afAuth.auth.onAuthStateChanged((user) => {
  this.zone.run(() => {
    if (user) {
      this.rootPage = HomePage
    } else {
      this.rootPage = LoginPage
      console.log("Not logged in")
    }
    this.splashScreen.hide();
  });
});`

现在试试....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-22
    • 2020-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多