forked from CarrotSkin/carrotskin
fix: correct timeout type for browser environment
This commit is contained in:
@@ -24,12 +24,12 @@ export default function Home() {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
// 添加防抖处理,减少状态更新频率
|
// 添加防抖处理,减少状态更新频率
|
||||||
let timeoutId: NodeJS.Timeout;
|
let timeoutId: number | undefined;
|
||||||
|
|
||||||
const handleMouseMove = (e: MouseEvent) => {
|
const handleMouseMove = (e: MouseEvent) => {
|
||||||
// 使用防抖,每16ms更新一次(约60fps)
|
// 使用防抖,每16ms更新一次(约60fps)
|
||||||
clearTimeout(timeoutId);
|
clearTimeout(timeoutId);
|
||||||
timeoutId = setTimeout(() => {
|
timeoutId = window.setTimeout(() => {
|
||||||
setMousePosition({ x: e.clientX, y: e.clientY });
|
setMousePosition({ x: e.clientX, y: e.clientY });
|
||||||
}, 16);
|
}, 16);
|
||||||
};
|
};
|
||||||
@@ -38,7 +38,9 @@ export default function Home() {
|
|||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
window.removeEventListener('mousemove', handleMouseMove);
|
window.removeEventListener('mousemove', handleMouseMove);
|
||||||
clearTimeout(timeoutId);
|
if (timeoutId) {
|
||||||
|
clearTimeout(timeoutId);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user