我遇到了一个问题,我的useEffect导致了以下警告:
这个组件工作得很好,但警告看起来很糟糕。
我看过多篇帖子,使用清理函数应该可以解决问题,并尝试应用,但仍然出现相同的警告。
有什么线索吗?
只有从此组件处于活动状态的页面重新加载时才会出现此问题。无法对未挂载的组件执行React状态更新。这是一种无操作,但它表示您的应用程序中存在内存泄漏。要修复,请在useEffect清理函数中取消所有订阅和异步任务。
这个组件工作得很好,但警告看起来很糟糕。
我看过多篇帖子,使用清理函数应该可以解决问题,并尝试应用,但仍然出现相同的警告。
有什么线索吗?
import React, { useState, useEffect } from 'react'
import ImageGallery from 'react-image-gallery';
import "./ImageGal.css"
import "react-image-gallery/styles/css/image-gallery.css";
import fire from "./firebase";
function ImageGal({ unique }) {
const [images, setImages] = useState([]);
useEffect(() => {
const fetchImages = async () => {
const response = fire.firestore().collection("albums/" + unique + "/images"); //unique is the name of the album, passed on as a prop to this component
const data = await response.get();
const Imagearray = [];
data.docs.forEach(item => {
Imagearray.push({ id: item.id, original: item.data().url })
})
setImages(Imagearray)
}
fetchImages();
}, [])
return (
<div className="imagegal">
<ImageGallery
infinite={true}
lazyLoad={true} items={images} showThumbnails={false}
slideInterval={4000}
/>
</div>
)
}
export default ImageGal
最好的问候, 奥斯卡