티스토리 뷰
render()
함수에서 JSX element 리턴 시 handleChange 속성 부분에 바로 함수를 구현하면 this.setState()
를 사용함에 있어 문제가 되지 않는다.
하지만 class 함수로 빼게 되면 this
keyword를 인식하지 못한다.
이때 constructor()
에서 context를 binding 시켜주는 방법도 있지만 arrow function을 사용하면 별도의 binding 없이 사용 가능하다.
그냥 썼을 경우
<div className="App">
<SearchBox
placeholder="search monsters"
handleChange={(e) => this.setState({ searchField: e.target.value })}
/>
</div>
일반 method로 구현
constructor() {
super();
...
this.handleChange = this.handleChange.bind(this);
}
handleChange(e) {
this.setState({ searchField: e.target.value });
}
<div className="App">
<SearchBox
placeholder="search monsters"
handleChange={this.handleChange}
/>
</div>
Arrow Function
handleChange = (e) => {
this.setState({ searchField: e.target.value });
}
<div className="App">
<SearchBox
placeholder="search monsters"
handleChange={this.handleChange}
/>
</div>
'Web > React' 카테고리의 다른 글
React에서 Form Validation을 해보자 (ft. Custom Hook) (0) | 2021.11.18 |
---|---|
setState의 비동기적 속성, prevState, prevProps (0) | 2021.04.22 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Validation
- 다익스트라
- 벨만포드
- 구현
- regex
- form
- 프로그래머스
- 백트래킹
- CustomHook
- 문자열
- 삼성역테기출
- matches
- 알고리즘
- 시뮬레이션
- vue.js
- 백준
- dp
- 정규식
- 우선순위큐
- BFS
- 해시
- swea
- 이분탐색
- BigInteger
- REACT
- 그래프
- web
- 브루트포스
- java
- dfs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함