因此,我们需要在组件Unmount上执行类似的操作(代码片段从MediumPost
复制):
useEffect(() => { const fetchData = async () => { const response = await fetch('https://api.example.com/data'); const newData = await response.json(); setData(newData); }; fetchData(); return () => { // Cleanup function to clear data setData([]); }; }, []);
方面问题:以上代码段是否会导致内存泄漏?我们正在清除Unmount上的数据状态,但是在API呼叫完成后,我们将再次进行SETDATA调用。这不会导致内存泄漏吗?很想对此明确。 谢谢!
清理任何可能导致任何类型的内存泄漏的内存泄漏(例如timer apis
,
event handlers
或任何其他外部API)总是很好的做法。但是,如果在当地状态,我认为无需手动清洁。当组件未填充时,它的本地变量为
un-referenced
garbage collector
将自动检测到未参考的内存并清理(使用诸如