React element 이벤트 핸들링 기본
- React에서 events 이름은 반드시 camelCase를 사용해야 한다.
- React에서 event handler는 JSX형태로 함수를 표기한다.
// 기존 DOM element에서 사용하는 방법
<button onclick="activeLasers()">
Activate Lasers
</button>
// React에서 사용하는 방법
<button onClick={activateLasers}>
Activate Lasers
</button>
onClick와 같이 camelCase로 이벤트 이름을 설정하고, event handler의 연결은 JSX 표기인 { }을 사용하고 있다.
anonymous 형태의 arrow function 사용하기
function LocalStorage() {
const handleGetKeyWord = (e) => {
debounce(() => {
console.log(e.target.value)
},1000)
}
return(
<Fragment>
<Input.Search
size="large"
placeholder="Search here"
enterButton
style={{ marginBottom: 10 }}
onKeyUp={() => {handleGetKeyWord()}}
/>
</Fragment>
)
}
onKeyUp에서 익명함수를 사용 할 경우 추가 리렌더링을 수행 할 수 있다.
코드를 실행하면 아래와 같은 오류가 발생한다.
TypeError: Cannot read property 'target' of undefined
값을 전달하지 않고 단순히 함수를 호출하기에 발생하는 오류이다.
그러므로 이벤트 핸들러를 바인딩 하기 위해서 아래와 같이 코드를 수정한다.
function LocalStorage() {
const handleGetKeyWord = (e) => {
debounce(() => {
console.log(e.target.value)
},1000)
}
return(
<Fragment>
<Input.Search
size="large"
placeholder="Search here"
enterButton
style={{ marginBottom: 10 }}
onKeyUp={handleGetKeyWord}
/>
</Fragment>
)
}
handleGetKeyWord는 이벤트 핸들러에 바인딩이 되고, keyup이 일어날 때 handleGetKeyWord는 이제 e.target.value를 확인 할 수 있다.
'유통기한 관리_개인프로젝트' 카테고리의 다른 글
CORS 처리 (0) | 2021.04.02 |
---|---|
mongoose '__v' 필드 (0) | 2021.04.01 |
collection naming convention in mongodb-빈 리스트가 돌아오는 이슈!! (0) | 2021.03.30 |
자바스크립트 ES6 모듈 내보내기/불러오기 (0) | 2021.03.25 |
React에서 이벤트 적용하기 (0) | 2021.03.25 |