인프런 커뮤니티 질문&답변
질문 있습니다.
작성
·
194
0
질문 1.
onClick에서는 화살표 함수를 사용하는데,
onChange와 onSubmit에서는 화살표 함수를 사용하지 않는 이유가 있을까요?
onClick={() => this.handleClick(data.id)},
onSubmit={this.handleSubmit}
질문 2.
state 오브젝트의 값을 변경할 때 this.setState()를 사용하는데 setState() 함수는 어디에도 없는데 이게 어떻게 가능한 건가요?
답변 1
2
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()를 사용할 수 있습니다.
감사합니다.





