- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
几个小时以来,我一直在我的项目中寻找解决此问题的方法,但无济于事。我读过许多其他“无法读取未定义的属性......”的帖子,但似乎找不到适合我的解决方案。
下面是我项目中的相关代码。
这是一个 Ionic 2/Apache Cordova 项目,下面的页面是该应用程序的登录页面。它不是核心应用程序组件之一,它只是一个普通页面。
出于某种原因,NavController 在 onSignIn() 方法中未被识别,但我不知道为什么。我已经在构造函数中注入(inject)了 NavController,看起来我并没有遵循我所知道的任何已知过程,但它每次仍然失败。
import firebase from 'firebase';
import { Component } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
import { HomePage } from './../home/home';
var provider = new firebase.auth.FacebookAuthProvider();
@Component({
selector: 'page-signin',
templateUrl: 'signin.html',
})
export class SignInPage {
constructor(public navCtrl: NavController, public params: NavParams) {}
onSignIn() {
firebase.auth().signInWithPopup(provider).then(function(result) {
console.log(result.credential.accessToken);
console.log(result.user.displayName);
this.navCtrl.setRoot(HomePage);
}).catch(function(error) {
console.log(error.message);
});
}
}
最佳答案
解决此问题的更好方法是使用 arrow functions :
An arrow function expression has a shorter syntax than a function expression and does not bind its own this, arguments, super, or new.target.
因此,只需像这样更改 onSignIn
方法即可解决您的问题:
onSignIn() {
firebase.auth().signInWithPopup(provider).then((result) => {
console.log(result.credential.accessToken);
console.log(result.user.displayName);
this.navCtrl.setRoot(HomePage);
}).catch(function(error) {
console.log(error.message);
});
}
注意 (result) => {...}
而不是 function(result) {...}
关于angular - 无法读取未定义的属性 'navCtrl',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43418146/
几个小时以来,我一直在我的项目中寻找解决此问题的方法,但无济于事。我读过许多其他“无法读取未定义的属性......”的帖子,但似乎找不到适合我的解决方案。 下面是我项目中的相关代码。 这是一个 Ion
你能告诉我以下两种方法有什么区别吗?我应该在哪个时刻使用它? book.ts this.app.getRootNav().push('FromBook', { bookId: this.data.id
我有三个页面,分别命名为 page1、page2 和 page3 他们的导航将是 page1->page2->page3 我们如何在 page2 上识别用户是通过 NavController Push
我正在使用 Ionic 制作一个应用程序,将图像上传到我的 Firebase 存储。上传完成后,应用程序应将用户重定向到 WelcomePage。上传工作正常,但由于某种原因,用户没有被重定向。看一下
我正在用 ionic 3 开发一款游戏,我的类名如下:level1、level2、level3 等...我正在使用 LocalStorage 来保存用户达到的级别。 代码如下: import { le
当我使用 navCtrl.push 导航到页面时,侧边菜单图标(汉堡包)丢失,并且出现后退图标而不是侧边菜单图标。 我想做的是保留侧边菜单图标(将其放在 ion-navbar 的右侧),并且在将页面推
根据我对 Ionic 文档和问题的理解,例如: How to keep tab when pushing a new page? 我已经正确地做了必要的事情来防止我的标签栏被隐藏。需要明确的是,当导航
在 Ionic 3 中,您可以使用 navController 的第二个参数将数据传递到下一页并使用 navParams 服务检索它。 这是一个非常方便的功能。 Ionic 4 中是否有等效的路由 a
我是一名优秀的程序员,十分优秀!