인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

김동현님의 프로필 이미지
김동현

작성한 질문수

[리액트 1부] 만들고 비교하며 학습하는 리액트 (React)

[구현하기 2] 상속 1

추상메서드

작성

·

162

1

안녕하세요! List 컴포넌트에서 renderItem을 굳이 정의하는 이유가 따로 있을까요??,, 추상 메서드에 대한 개념이 이해하 잘 안가네요,, 그냥 이해를 돕기 위해 정의하는 메서드인가요?

답변 1

3

김정환님의 프로필 이미지
김정환
지식공유자

List의 render() 메서드를 재활용 하려는 목적입니다.

이 메서드에서는 renderItem() 메서드를 호출하는데요. List 클랙스에 정의된 것을 보면 아무것도 없죠? 그냥 예외를 던지는 코드 뿐입니다. 대신 List 클래스를 상속하는 측에서 구현하도록 숙제로 남겨둔 것이죠.

이를 구현한 KeywordList나 HistoryList를 보면 renderItem() 메서드를 구현했습니다. render() 메서드가 없는데 이것은 부모인 List 클래스의 역할이기 때문이에요.

KeywordList와 HistoryList 입장에서 보면 renderItem만 정의해 줄테니 List가 알아서 그리라는 것이고요. List 입장에서는 나를 구현한 측에서 renderItem만 정의해 주면 내가 render로 그려줄게라는 의도입니다.

김동현님의 프로필 이미지
김동현

작성한 질문수

질문하기