javascript - React useEffect中带有边界框的内存泄漏
问题描述
所以我有一个自定义钩子可以跟踪一些动画 div 的边界框,但是当我将边界框添加到useEffect
依赖项时它会出现内存泄漏,我不知道如何填补空白。
请参阅下面的钩子,以及代码沙盒上的一个工作示例
import { useCallback, useEffect, useState } from 'react';
const useBoundingBoxWithEventListeners = (ref) => {
const [bbox, setBbox] = useState({});
const set = useCallback(() =>
setBbox(ref && ref.current ? ref.current.getBoundingClientRect() : {}), [ref]);
useEffect(() => {
set();
window.addEventListener('resize', set);
return () => {
window.removeEventListener('resize', set);
};
}, [ref, set, bbox]);
return { bbox, ref };
};
export { useBoundingBoxWithEventListeners };
解决方案
推荐阅读
- java - Proper way to wait for a lambda to complete
- android - Webview cookie 未更新
- spring-boot - Spring Boot:本地化 REST API 响应
- batch-file - 如何在vbs中将字符串添加到传递的参数中
- javascript - 我的 js 代码有什么问题。结果总是不确定的?
- javascript - JavaScript 函数在 AJAX XML HttpRequest 之后不起作用
- sql - Role of null in performance tuning
- javascript - Xpath 返回下元素的空值
标签 - python - PermissionError 仅在第一次引发 - pd.ExcelWriter.save()
- c++ - 如何匹配环境不同的两组?C++