티스토리 뷰
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
- 이분탐색
- 그래프
- 프로그래머스
- form
- dfs
- dp
- 알고리즘
- matches
- 벨만포드
- 우선순위큐
- 시뮬레이션
- BigInteger
- 구현
- 백준
- 해시
- 다익스트라
- 백트래킹
- vue.js
- swea
- REACT
- BFS
- 정규식
- java
- 문자열
- 삼성역테기출
- CustomHook
- web
- 브루트포스
- Validation
- regex
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함