【发布时间】:2019-12-07 06:16:08
【问题描述】:
所以我正在关注有关创建 google 登录的教程。他说您需要使用 onAuthStateChanged 来收听登录/退出。我不明白的部分是他说该方法就像“开放订阅”,我们需要“关闭订阅”以防止内存泄漏。
所以在你看代码之前,我无法掌握的是这些:
- 为什么我们需要定义
unsubscribeFromAuth; - 为什么我们需要在 ComponentDidMount 中将
onAuthStateChanged分配给this.unsubscribeFromAuth; - 为什么我们需要使用 ComponentWillUnmount 并调用
unsubscribeFromAuth
class App extends React.Component {
constructor() {
super()
this.state = {
currentUser: null
}
}
unsubscribeFromAuth = null
componentDidMount() {
this.unsubscribeFromAuth = auth.onAuthStateChanged(user => {
this.setState({ currentUser: user })
console.log(user)
})
}
componentWillUnmount() {
this.unsubscribeFromAuth()
}
【问题讨论】:
标签: reactjs firebase firebase-authentication