xref: /MusicFree/src/hooks/useMounted.ts (revision 9677305be11b30a8953a6c14fd24375953a2309d)
1*9677305bS猫头猫import {useRef, useState, useEffect, useCallback} from 'react';
2*9677305bS猫头猫
3*9677305bS猫头猫export function useOnMounted() {
4*9677305bS猫头猫    const onMounted = useRef(false);
5*9677305bS猫头猫    const [isLoading, setLoading] = useState(true);
6*9677305bS猫头猫
7*9677305bS猫头猫    useEffect(() => {
8*9677305bS猫头猫        onMounted.current = true;
9*9677305bS猫头猫        setTimeout(() => {
10*9677305bS猫头猫            setLoading(false);
11*9677305bS猫头猫        });
12*9677305bS猫头猫
13*9677305bS猫头猫        return () => {
14*9677305bS猫头猫            onMounted.current = false;
15*9677305bS猫头猫        };
16*9677305bS猫头猫    }, []);
17*9677305bS猫头猫
18*9677305bS猫头猫    return {onMounted: useCallback(() => onMounted.current, []), isLoading};
19*9677305bS猫头猫}
20