警告:无法在已卸载的组件上执行React状态更新。反应

时间:2020-07-21 11:44:03

标签: reactjs firebase google-cloud-firestore

如果用户未登录,我试图避免他们进入某些页面。如果他们尝试访问“ citas”但未登录,则将其重定向到“ login”。问题是我遇到了这个错误。

警告:无法在已卸载的组件上执行React状态更新。这是空操作,但它表明应用程序中发生内存泄漏。要修复,请取消使用useEffect清理功能中的所有订阅和异步任务。

这是“ citas”代码

 const Citas = () => {
  const { currentUser } = useContext(AuthContext);
  const history = useHistory();

      useEffect(() => {
      const unsuscribe = database.collection('NegociosDev').onSnapshot(function () {
        database.collection('NegociosDev').doc('Peluquerías').collection('Negocios').doc('PR01').collection('citas').where('CheckIn', '>=', startDate.toISOString().split('T')[0]).get()
            .then(response => {
                const fetchedCitas = [];
                const fetchedIDs = [];
                response.forEach(document => {
                    const fetchedCita = {
                        id: document.id,
                        ...document.data()
                    };
                    const fetchedID = document.id;

                    fetchedIDs.push(fetchedID);

                    fetchedCitas.push(fetchedCita);
                });
                setCitas(fetchedCitas);
                setIDs(fetchedIDs)


            })
        return () => unsuscribe();
    });

  if (!currentUser) {
    return <Redirect to="/index" />;
  }
  return <div></div>;
};

它重定向到登录页面,但是我一直收到此错误。

0 个答案:

没有答案