私は現在firebaseを使ってウェブサイトに特定のユーザーの姓名を入力していますが、何らかの理由でそれが機能していません。リアクション関数が値を返さない
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>
);
}
これは私の2つの機能です。何らかの理由で、どちらの場合でもname変数を出力すると、2つの異なる変数が得られます。 getUserName()では、ユーザーのフルネームを出力し、その値を返します。 DOMがレンダリングされるとき、getUserName()関数がフルネームを出力しても、 "name"変数は未定義です。どんな助けでも大歓迎です!あなたが状態を使用する必要がありますので、あなたが...
ローカル変数をthis.SetState({name: value})
に代わりvariable.Store名の値の状態を使用し、使用するこれまでthis.state.name
を使用して直接使用する必要が
をあなたが 'にconsole.log行う際に印刷したものを:すべてが提案されてここ
は、コードだ( "名:"、this.getUserName())'の代わりに? –