• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

onSumbit={this.handleSumbit} 이랑 onSumbit={()=>this.handleSumbit()} 차이가 무엇인가요?

22.07.27 07:42 작성 조회수 200

4

onSumbit={this.handleSumbit} 랑
onSumbit={()=>this.handleSumbit()} 랑
onSumbit={this.handleSumbit()} 랑 차이가 있을까요?

답변 1

답변을 작성해보세요.

3

성민석님의 프로필

성민석

2022.07.27

안녕하세요~~

우선 제가 아는선에서 답을 해드리면

1. onSubmit={this.handleSumbit}
2. onSubmit={()=>this.handleSumbit()}
 
1번과 2번은 차이점은 인수가 필요하나 필요없나에 따라 갈립니다
1번은 인수가 필요없을때 사용하고 2번은 인수가 필요할때 사용하는 방식입니다
ex) handleSubmit(data.id)이렇게 하면 안되는 이유는 onSubmit이벤트 뒤에는 함수가 들어가야하는데
handleSubmit(data.id)은 함수가 아니라 함수에서 나온 리턴값이기 때문입니다
 
그러므로 submit이벤트가 발생했을때 실행할 함수에 인수가 필요한 경우에는 화살표 함수를 쓰고 인수가 필요없을경우에는 함수명만 사용하면 됩니다
 
3.onSubmit={this.handleSumbit()}
 

1. HTML

<button onclick="handleEvent()">Event</button>
함수를 호출하는 형태입니다

2. React

<button onClick={handleEvent}>Event</button>
함수 자체를 전달합니다
React에서 함수를 호출하는 형태로 작성하게되면 렌더링하는 단계에서 함수가 호출되어, 
onClick에는 함수를 호출한 결과가 담기게 됩니다. 
 
 
wnsgh5049님의 프로필

wnsgh5049

질문자

2022.07.28

감사합니다!