【发布时间】:2019-03-02 14:58:05
【问题描述】:
好的,所以我在 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(){
}
【问题讨论】:
-
我认为没有办法中止正在进行的
get()操作。对于onSnapshot(),你会得到一个订阅,你可以打电话取消订阅,但据我所知get没有。 -
如何取消订阅
onSnapshot()?
标签: javascript reactjs firebase google-cloud-firestore