如果用户未登录,我试图避免他们进入某些页面。如果他们尝试访问“ 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>;
};
它重定向到登录页面,但是我一直收到此错误。