FE/에러노트

TypeScript에러 - useRef에러!

<zinny/> 2022. 8. 12. 23:16
728x90

 

(property) React.ClassAttributes<ScrollView>.ref?: React.LegacyRef<ScrollView> | undefined
이 호출과 일치하는 오버로드가 없습니다.
  오버로드 1/2('(props: ScrollViewProps | Readonly<ScrollViewProps>): ScrollView')에서 다음 오류가 발생했습니다.
    'MutableRefObject<undefined>' 형식은 'LegacyRef<ScrollView> | undefined' 형식에 할당할 수 없습니다.
      'MutableRefObject<undefined>' 형식은 'RefObject<ScrollView>' 형식에 할당할 수 없습니다.
        'current' 속성의 형식이 호환되지 않습니다.
          'undefined' 형식은 'ScrollView | null' 형식에 할당할 수 없습니다.
  오버로드 2/2('(props: ScrollViewProps, context: any): ScrollView')에서 다음 오류가 발생했습니다.
    'MutableRefObject<undefined>' 형식은 'LegacyRef<ScrollView> | undefined' 형식에 할당할 수 없습니다.ts(2769)
index.d.ts(136, 9): 필요한 형식은 여기에서 'IntrinsicAttributes & IntrinsicClassAttributes<ScrollView> & Readonly<ScrollViewProps> & Readonly<...>' 형식에 선언된 'ref' 속성에서 가져옵니다.
index.d.ts(136, 9): 필요한 형식은 여기에서 'IntrinsicAttributes & IntrinsicClassAttributes<ScrollView> & Readonly<ScrollViewProps> & Readonly<...>' 형식에 선언된 'ref' 속성에서 가져옵니다.
const scrollRef = React.useRef();

<ScrollView ref={scrollRef} >

useRef를 통해서 스크롤 뷰의 값을 정의하려고 했는데 오류가 발생했다. 

 

 

 

✔️ 해결 방안

useRef 선언시에 null을 빠트려서 나오는 에러였다. 

const scrollRef = React.useRef(null);

<ScrollView ref={scrollRef} >

해주면 된다 

 

*? 근데 여기서 생기는 의문점은 why?였다. 사실 구글링을 통해서 문제 해결은 했으나 왜 저 자리에 null이 들어가야 하는 건지는 아직 제대로 찾지 못했기 때문에 추후에 추가할 예정이다. (22.08.12)

728x90