开发者问题收集

Ionic 2:Undefined 不是对象

2017-06-05
2067

我遇到了错误

undefined is not an object (evaluating 'this.email = '123'')

为什么会发生这种情况?

控制器中的 Ionic 2 代码:

email:string = '' ;

facebook_login() {

    this.fb.login(['public_profile', 'email'])
        .then((res: FacebookLoginResponse) => {

            this.fb.api("/me?fields=name,email", []).then(function(user) {

                this.email = '123' ;

            }) ;

    }).catch(e => {
        alert('Error login') ;
    });

}
1个回答

使用箭头函数作为回调 () => {}。

this 将指向函数对象,而不是示例中的类。

this.fb.api("/me?fields=name,email", []).then(function(user) {

                this.email = '123' ;

            }) ;

将以上内容更改为:

this.fb.api("/me?fields=name,email", []).then((user) => {

                this.email = '123' ;

            }) ;
Suraj Rao
2017-06-05