如何在反应功能组件中超时然后清除超时?
How to do timeout and then clear timeout in react functional component?
嗨,
我在 reactjs 中有功能组件,我试图在鼠标悬停在菜单上时超时,这很好并且工作正常,但我不知道如何在同一功能组件的其他功能中清除此超时,有什么解决办法吗?我主要使用钩子。我发现一些钩子超时,但效果不佳。
非常感谢
你可以使用类似这样的东西。
import React, { useRef } from 'react';
const Menu = () => {
const timerRef = useRef(null);
const onMouseEnter = () => {
timerRef.current = setTimeout(() => {}, 1000);
}
const onMouseLeave = () => {
if(timerRef.current) {
clearTimeout(timerRef.current);
}
}
return <div onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave} />
}
这里发生的事情是,我们将计时器的引用保存在 react ref 中。然后可以使用它来检查和清除另一个函数中的计时器。
嗨,
我在 reactjs 中有功能组件,我试图在鼠标悬停在菜单上时超时,这很好并且工作正常,但我不知道如何在同一功能组件的其他功能中清除此超时,有什么解决办法吗?我主要使用钩子。我发现一些钩子超时,但效果不佳。 非常感谢
你可以使用类似这样的东西。
import React, { useRef } from 'react';
const Menu = () => {
const timerRef = useRef(null);
const onMouseEnter = () => {
timerRef.current = setTimeout(() => {}, 1000);
}
const onMouseLeave = () => {
if(timerRef.current) {
clearTimeout(timerRef.current);
}
}
return <div onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave} />
}
这里发生的事情是,我们将计时器的引用保存在 react ref 中。然后可以使用它来检查和清除另一个函数中的计时器。