Javascript 使用onload时React中的欢迎加载程序问题

Javascript 使用onload时React中的欢迎加载程序问题,javascript,reactjs,react-hooks,use-state,Javascript,Reactjs,React Hooks,Use State,我正在用React实现欢迎加载程序。首先加载页面时,它工作正常。但是当我再次刷新页面时,加载程序不会在加载时消失。 这是代码-> function App(){ const [isLoader, setIsLoader] = useState(false); useEffect(() => { setIsLoader(true); window.addEventListener("load&qu

我正在用React实现欢迎加载程序。首先加载页面时,它工作正常。但是当我再次刷新页面时,加载程序不会在加载时消失。 这是代码->

function App(){

        const [isLoader, setIsLoader] = useState(false);


        useEffect(() => {
            setIsLoader(true);
            window.addEventListener("load", setLoaderHandle);
            return () => {
                window.removeEventListener("load", setLoaderHandle);
            }

        }, []);


        const setLoaderHandle = () => {
            const time = setTimeout(() => setIsLoader(false), 1300);
        }


        return (
           <> 
              {isLoader && <Loader />}
           </>
        )
}
函数应用程序(){
const[isLoader,setIsLoader]=useState(false);
useffect(()=>{
setIsLoader(真);
window.addEventListener(“加载”,setLoaderHandle);
return()=>{
removeEventListener(“加载”,setLoaderHandle);
}
}, []);
常量setLoaderHandle=()=>{
const time=setTimeout(()=>setIsLoader(false),1300);
}
返回(
{isLoader&&}
)
}

一旦向加载事件添加了事件侦听器,则会调用加载事件,因此打开新选项卡时会调用加载事件,但对于刷新加载事件,则不会调用加载事件,因此也不会调用setLoaderHandle

您可以在useEffect中调用
setLoaderHandle
,以确保在每个组件装载时都调用它

useEffect(() => {
    setIsLoader(true);
    window.addEventListener("load", setLoaderHandle);
    setLoaderHandle();
    return () => {
      window.removeEventListener("load", setLoaderHandle);
    };
  }, []);


所以如果我直接把它放在钩子里。。。它将直接调用setLoaderhandle。但我只想在页面完全加载后调用它。您应该将初始值设置为true,在页面加载时将其设置为false,但刷新时加载程序不会出现,因为刷新时您仍然在同一页面上,所以onload事件不会得到firedit正在工作,,,,,我唯一不明白的是。。。。。事件侦听器和setLoaderHandle保持在一起。。。。。因此,setEventHandler将在页面加载之前被调用,并将使加载程序为false。当您打开一个新选项卡(后续重新加载时也是如此)时,将不会调用onload事件,您可以立即删除eventListner部分,因为它是不可逆的,现在有没有其他方法可以让相同的欢迎加载程序感觉到onload和refresh?