강의

멘토링

커뮤니티

Inflearn コミュニティ Q&A

dongwook98 のプロフィール画像
dongwook98

投稿した質問数

Webゲームを作って学ぶReact

クラスコンポーネントの型とリアクトデブツール

리액트 class 컴포넌트 중 this 질문입니다.

解決済みの質問

作成

·

330

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 클래스 인스턴스를 가져오는 것이 맞을까요?

 

react

回答 2

0

dongwook98님의 프로필 이미지
dongwook98
質問者

빠른답변 감사합니다 !!

0

zerocho님의 프로필 이미지
zerocho
インストラクター

네 맞습니다!

console.log(this) 해보시면 차이가 눈에 보입니다

dongwook98 のプロフィール画像
dongwook98

投稿した質問数

質問する