Muh*_*Ovi 5 javascript firebase reactjs google-cloud-firestore
好的,所以我正在 componentDidMount 中从 Firestore 获取数据,但是如果我更改组件,它正在获取数据时我收到错误消息:
警告:无法在未安装的组件上调用 setState(或 forceUpdate)。这是一个空操作,但它表明您的应用程序中存在内存泄漏。要修复,请取消 componentWillUnmount 方法中的所有订阅和异步任务。
在 Firebase 实时数据库中,我们调用ref.off()
停止查询。
想知道如何在 Firestore 中做到这一点
componentDidMount() {
Users.get().then(({ docs }) => {
const users = docs.map(user => user.data());
this.setState({ users });
});
}
componentWillUnmount(){
}
Run Code Online (Sandbox Code Playgroud)
如果有人仍在寻找答案,我找到了一个解决方法:
componentDidMount() {
this.mounted = true;
Users.get().then(({ docs }) => {
const users = docs.map(user => user.data());
if(this.mounted) this.setState({ users });
});
}
componentWillUnmount(){
this.mounted = false;
}
Run Code Online (Sandbox Code Playgroud)
this.mounted
当组件被卸载并且 setState 不起作用时将为 false。
归档时间: |
|
查看次数: |
1376 次 |
最近记录: |