【发布时间】:2019-04-02 18:23:33
【问题描述】:
我正在开发 Reactjs 和 Firebase 中的全栈应用程序,我使用 signInWithPopup 方法成功验证,之后我想将凭证存储到本地状态。
我在 ComponentDidMount 中使用了 this.setState,但出现了错误。我什至使用过 axios 但失败了。
state = {
}
componentWillMount() {
auth.onAuthStateChanged(function (user) {
if (user) {
// User is signed in.
var displayName = user.displayName;
console.log(displayName);
var email = user.email;
console.log(email);
var emailVerified = user.emailVerified;
console.log(emailVerified);
var photoURL = user.photoURL;
var isAnonymous = user.isAnonymous;
var uid = user.uid;
var providerData = user.providerData;
this.setState({
displayName:this.displayName
})
} else {
window.location = "/signin";
}
})
}
TypeError: this.setState 不是函数
【问题讨论】:
-
首先,你应该展示你的整个代码。另外,你不应该在
willMount中这样做,它应该在didMount中。第三,如果您使用function,您将无法访问班级的this。
标签: javascript reactjs firebase-authentication axios state