Published 2023. 10. 27. 20:12
728x90
반응형
onKeyUp, onKeyDown 이벤트 한글 입력시 2번 실행되는 문제
영어가 아닌 한글을 입력한 후 onKeyUp, onKeyDown 이벤트를 실행하면 중복으로 이벤트가 실행됨
원인
IME composition
IME는 브라우저에서 다양한 언어를 지원해주는 OS 단계의 어플리케이션
IME 과정에서 이벤트가 발생하면, 한글 변환 작업이 OS에서도 이루어지고 브러우저에서도 처리되면서 중복 발생하는 문제
isComposing
Web API 스펙에는 Event Target에 KeyboardEvent.isComposing 이라는 프로퍼티를 제공하고 있음
한글을 포함하여 비영어권 언어를 사용한다면 이 값을 참조하여 중복을 막을 수 있음
해결
isComposing 프로퍼티를 사용하여 한 번만 실행되도록 처리하기
/* 1번째 방법 */
const handleClickEvent = (event) => {
if(event.nativeEvent.isComposing) return;
// 이벤트 작성
}
/* 2번째 방법 */
const handleClickEvent = (event) => {
if(isComposing) return;
// 이벤트 작성
}
반응형
'프로그래밍 > React' 카테고리의 다른 글
[React Error] Uncaught (in promise) TypeError: Assignment to constant variable. 해결 방법 (0) | 2023.12.05 |
---|---|
[React] inline style !important 적용 방법 (0) | 2023.11.15 |
[React] ag-grid 사용법 (0) | 2023.09.15 |
[React] Get 파라미터로 List 전달 (0) | 2023.09.08 |
[React] Module not found... 에러 해결 방법 (0) | 2023.08.23 |