我目前正在使用firebase以特定用戶的名字和姓氏填充網站,但由於某種原因,它不起作用。React函數不返回任何值
getUserName(){
firebaseAuth().onAuthStateChanged((user) => {
if(user){
// var name = ref.ref('users/' + user.uid).once('value').then((snapshot) => console.log(snapshot.val().displayName));
var name = user.displayName;
console.log("name in function: " + name); //prints full name
return name;
}
});
}
render() {
var name = this.getUserName();
console.log("name: " + name); //prints undefined
return (
<div className="col-sm-6 col-sm-offset-3">
<h1> Welcome {this.getUserName()} asdfasd </h1>
</div>
);
}
這些是我的兩個功能。出於某種原因,當我在這兩種情況下打印出名稱變量時,我會得到兩個不同的變量。在getUserName()中,它打印出用戶的全名,然後我返回該值。當DOM呈現時,即使getUserName()函數打印出全名,「name」變量也是未定義的。任何幫助將不勝感激!
什麼打印,當你做'的console.log( 「名」,this.getUserName())'呢? – 2016-12-26 05:59:06