我有以下代码片段,我收到两个警告:
警告:无法对已卸载的组件执行 React 状态更新。这是一个空操作,但它表明应用程序中存在内存泄漏。要修复此问题,请取消 useEffect 清理函数中的所有订阅和异步任务。
unmountComponentAtNode():您尝试卸载的节点是由 React 的另一个副本渲染的。
import React, { useState, useEffect } from "react";
import GravatarList from "./GravatarList";
import Header from "./Header";
import { calculateNumberOfImages } from "./utils";
const App = () => {
const handle = () => {
setState({ images: calculateNumberOfImages() });
}
useEffect(() => {
return () => {
window.removeEventListener('resize', () => handle())
window.removeEventListener('scroll', () => handle())
}
}, [])
const [state, setState] = useState(() => {
window.addEventListener("scroll", () => handle());
window.addEventListener("resize", () => …Run Code Online (Sandbox Code Playgroud)