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

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

찬비님의 프로필 이미지
찬비

작성한 질문수

따라하며 배우는 리액트 A-Z[19버전 반영]

전개 연산자(Spread Operator)

질문 있습니다.

작성

·

180

0

질문 1.
onClick에서는 화살표 함수를 사용하는데,
onChange와 onSubmit에서는 화살표 함수를 사용하지 않는 이유가 있을까요?
 
onClick={() => this.handleClick(data.id)},
onSubmit={this.handleSubmit}
 
질문 2.
state 오브젝트의 값을 변경할 때 this.setState()를 사용하는데 setState() 함수는 어디에도 없는데 이게 어떻게 가능한 건가요?

답변 1

2

John Ahn님의 프로필 이미지
John Ahn
지식공유자

안녕하세요 찬비님 
좋은 질문 감사합니다. 

1. onClick 에서는 현재 data.id 라는 인수가 필요합니다. 
만약에 인수가 필요치 않다면 onSubmit 이벤트가 발생했을때 처럼 this.handleClick 해주셔도 됩니다! 

2. this 라는 것 setState가 안에 들어있는데 

class Car extends React.Component {
render() {
return <h2>Hi, I am a Car!</h2>;
}
}

this 가 setState을 가지고 있을 수 있는 이유는
this는 이 Car라는 컴포넌트에 Binding이 되는데
Car 컴포넌트는 React.Component를 extends 해서 (상속한다고 생각해주세요) React.Component안에 있는 걸 사용할 수 있습니다.
React.Component 안에는 당연히 setState가 들어있겠죠? 

요약하면 this => App 컴포넌트에 binding 되고 => App은 setState을 가지고 있는 React.Component를 extends 하기 때문에 this.setState()를 사용할 수 있습니다.
감사합니다.

찬비님의 프로필 이미지
찬비

작성한 질문수

질문하기