i am new in typescript,i am getting error when i tried to use useEffect in typescript in react, Argument of type '() => () => boolean' is not assignable to parameter of type 'EffectCallback'., can anyone please help me why i am getting this error ? here i have put my code, any help will be really appreciated,
const useIsMounted = () => {
const isMounted = React.useRef(false);
React.useEffect(() => {
isMounted.current = true;
return () => isMounted.current = false;
}, []);
return isMounted;
};
The function of useEffect (EffectCallback type) should return void or () => void | undefined.
function useEffect(effect: EffectCallback, deps?: DependencyList): void;
type EffectCallback = () => (void | (() => void | undefined));
In your case, you returning void => boolean:
// void => boolean
return () => (isMounted.current = false);
To fix it, add scope to the statement of the cleaning function:
const useIsMounted = () => {
const isMounted = React.useRef(false);
React.useEffect(() => {
isMounted.current = true;
return () => {
isMounted.current = false;
};
}, []);
return isMounted;
};
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With