해결된 질문
작성
·
258
0
class LikeButton extends React.Component {
constructor(props) {
super(props);
this.state = {liked: false};
this.onClickButton = this.onClickButton.bind(this) // 이걸 안써주면 동작 안함
}
onClickButton() {
this.setState({liked: true});
}
render() {
if (this.state.liked) {
return 'You liked this.';
}
return (
<button onClick={this.onClickButton}>
Like
</button>
);
}
}
이 코드에서 this가 button 태그를 가르키기 때문에 bind함수로 LikeButton 클래스 인스턴스로 바인딩 해주어야
화살표 함수가 아닌 일반 function 키워드 함수로 메서드를 정의했을때 동작하는게 맞는걸까요?
화살표 함수라면 button 태그를 가르키지 않고 바깥 this를 그대로 가져오기 때문에 LikeButton 클래스 인스턴스를 가져오는 것이 맞을까요?