[React] input에 초점을 맞출 때 Enter 키를 눌러 보내기
6632 단어 ReactTypeScripttech
하고 싶은 일
input에서 예측 변환 후보가 나타나지 않았을 때 Enter를 누르면submit 함수를 누르십시오
isComposing 사용
keydown 이벤트의 속성에는 isComposing이 있습니다.
전환에서 전환이 끝날 때까지 진짜로 되돌아오기
ref: isComposing
ref: compositionstart
ref: compositionend
바로 해보시면 다음과 같은 느낌이 있어요.
document.getElementById("hoge").addEventListener("keydown",(e)=>{
console.log(e.isComposing)
// false
})
React에서 실제로 사용
const Hoge:React.FC = ():JSX.Element => {
/** ボタン押下orEnterで呼ばれる */
const handleSubmit = (
e: React.MouseEvent<HTMLButtonElement> | React.KeyboardEvent<HTMLInputElement>,
) => {
console.log('Click')
}
const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {
if (e.nativeEvent.isComposing || e.key !== 'Enter') return
handleSubmit(e)
}
return(
<div>
<input onKeyDown={handleKeyDown} />
<button onSubmit={handleSubmit}>submit</button>
</div>
)
}
주안점💡
🙅♀️
event.isComposing
오류 발생🙆♂️
event.nativeEvent.isComposing
boolean 반환Keyboard Event에는 isComposing이 없습니다.부터, "짧은 드라마를 감상할 수 있는 기회라고 생각해요?"1분 동안 패치를 하고 1시간 동안 읽고 초고를 쓴 후에야 네이티브 이벤트의 존재를 발견했다
어리석은 이유로 황금 주간의 소중한 1시간 1분을 낭비했는데...
Reference
이 문제에 관하여([React] input에 초점을 맞출 때 Enter 키를 눌러 보내기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/takky94/articles/f3096bb59761ee텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)