gpt4 book ai didi

javascript - 无法将数据从应用程序组件传递到函数

转载 作者:行者123 更新时间:2023-12-03 04:16:27 25 4
gpt4 key购买 nike

我将电子邮件数据发送到构造函数中的this.user

所以它存储在AppComponent中,接下来我需要函数getUserData中的这个变量来导入一些数据...但console.log显示未定义,并且users也有错误:

无法读取未定义的属性“auth”

那我做错了什么?为什么我无法使用它传递数据?

更新

现在 user.String 是包含“xxxx@.xx.com”的字符串但我仍然无法通过那里。 getUserData 中的 this.user 未定义:/

import { Component, OnInit } from '@angular/core';
import { RewardsComponent } from './rewards/rewards.component';
import { AngularFire,AuthProviders, AuthMethods, FirebaseAuthState } from 'angularfire2';
import { Router } from '@angular/router'
declare var firebase: any;

@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})


export class AppComponent implements OnInit {
title = 'app works!';
userData: any = [];
user: String;

constructor(public af: AngularFire, private router: Router) {
af.auth.subscribe(auth => {
if(auth) {
this.user = auth.auth.email.toString();
}
})
}

ngOnInit() {
this.getUserData();
}

getUserData() {
var ref = firebase.database().ref("/user");
ref.orderByChild("email").equalTo(this.user).on("child_added", (snapshot) => {
this.userData.push(snapshot.val());
});
}

}

最佳答案

可能

this.user = auth.auth.email;

正在存储一个字符串,例如“someemail@gmail.com”

当您尝试访问时

this.user.auth

没有 .auth 属性/ key ,因为 this.user 不是对象。

另外,你必须记住 af.auth.subscribe 是异步代码,因此你无法在 ngOnInit 方法中访问 this.user,因为你不知道 af.auth.subscribe 是否有还没有被叫到。

关于javascript - 无法将数据从应用程序组件传递到函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44120383/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com