私はReact/Redux/Firebaseアプリケーションを持っており、レンダリングメソッドの前に現在のユーザーのユーザー名を確認する必要があるため、dbに移動して別のユーザーを取得する必要があるかどうかを確認します。レンダリングメソッドの外でReact/Reduxの現在のユーザーにアクセスするにはどうすればよいですか?
しかし、何らかの理由で私は明確ではないが、レンダリング方法外でthis.props.currentUser
にアクセスすることはできません。 nullを返します。
基本的に、私はこの関数の内部にアクセスしたいと思います。私はrender()
にそのデータの罰金にアクセスすることができ、エラー
Cannot read property username of null
を取得
componentDidMount() {
var userURL = window.location.pathname.replace(/^\/([^\/]*).*$/, '$1');
if(this.props.currentUser.username !== userURL) {
this.getDbUser(userURL);
console.log(userURL);
}
}
:私のコードは次のようになります。どのようにこれを修正するための任意のアイデアは素晴らしいだろう。ありがとう!
チャンスはあなたのrenderメソッドを二回実行され、セカンドランで、ユーザーが定義されています。それがレンダリングで動作するのはなぜですか – corvid
ありがとう、レンダリングは実際には2回実行されていますが、理由はわかりません。私はコンストラクタのfetchUserメソッドを呼び出していますので、それを利用できるようにする必要はありませんか? –
非同期の場合 – corvid