it-source

오류 가져오기: '() => () => boolean' 유형의 인수를 'EffectCallback' 유형의 매개 변수에 할당할 수 없습니다.

criticalcode 2023. 6. 15. 21:55
반응형

오류 가져오기: '() => () => boolean' 유형의 인수를 'EffectCallback' 유형의 매개 변수에 할당할 수 없습니다.

나는 타자기에 새로 왔습니다. 내가 사용하려고 할 때 오류가 발생합니다.useEffect반응하는 문자로,Argument of type '() => () => boolean' is not assignable to parameter of type 'EffectCallback'.누가 제가 왜 이런 오류가 발생하는지 도와주실 수 있나요? 여기 코드를 넣었습니다. 어떤 도움이든 정말 감사하겠습니다.

const useIsMounted = () => {
        const isMounted = React.useRef(false);
        React.useEffect(() => {
          isMounted.current = true;
          return () => isMounted.current = false;
        }, []);
        return isMounted;
    };

의 기능useEffect(EffectCallbacktype)이 반환되어야 합니다.void또는() => void | undefined.

function useEffect(effect: EffectCallback, deps?: DependencyList): void;

type EffectCallback = () => (void | (() => void | undefined));

당신의 경우, 당신은 돌아옵니다.void => boolean:

// void => boolean
return () => (isMounted.current = false);

이 문제를 해결하려면 클리닝 기능의 문에 범위를 추가합니다.

const useIsMounted = () => {
  const isMounted = React.useRef(false);
  React.useEffect(() => {
    isMounted.current = true;
    return () => {
      isMounted.current = false;
    };
  }, []);
  return isMounted;
};

언급URL : https://stackoverflow.com/questions/62794003/getting-error-argument-of-type-boolean-is-not-assignable-to-para

반응형