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

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

wnsgh5049님의 프로필 이미지
wnsgh5049

작성한 질문수

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

할 일 목록 추가하기

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

해결된 질문

작성

·

275

4

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

답변 1

3

안녕하세요~~

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

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
질문자

감사합니다!

wnsgh5049님의 프로필 이미지
wnsgh5049

작성한 질문수

질문하기