gpt4 book ai didi

javascript - 如何停止 componentWillUnmount 上的 Firestore `get` 查询

转载 作者:行者123 更新时间:2023-11-29 23:16:37 24 4
gpt4 key购买 nike

好的,所以我在 componentDidMount 中从 Firestore 获取数据,但是当我更改组件时它正在获取数据时,我收到错误消息:

Warning: Can't call setState (or forceUpdate) on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in the componentWillUnmount method.

在 Firebase 实时数据库中,我们调用 ref.off() 来停止查询。

想知道如何在 Firestore 中做到这一点

componentDidMount() {
Users.get().then(({ docs }) => {
const users = docs.map(user => user.data());
this.setState({ users });
});
}

componentWillUnmount(){

}

最佳答案

如果有人仍在寻找答案,我找到了解决方法:

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;
}

this.mounted 组件卸载时将为 false,setState 将不起作用。

关于javascript - 如何停止 componentWillUnmount 上的 Firestore `get` 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52524368/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com