728x90
728x90

blurOnSubmit 속성과 submitBehavior 속성

들어가며

  • 리액트 네이티브(React Native)TextInput 컴포넌트에서 사용할 수 있는 blurOnSubmit 속성과 submitBehavior 속성에 대해 정리해본다.

 

blurOnSubmit 속성

개념

  • 우선 blurOnSubmit 속성은 다음과 같이 TextInput 컴포넌트에서 사용할 수 있다.
<TextInput
style={tw.style('px-3 py-2 font-semibold text-lg', {
lineHeight: 28,
outline: 'none', // 포커스 시, 검정색 경계 제거
})}
placeholder={placeholder}
value={text}
blurOnSubmit={true} // here
onSubmitEditing={() => {
setIsFocused(false);
Keyboard.dismiss();
}}
/>

 

  • blurOnSubmit 속성은 TextInput 창 텍스트를 입력하고, 엔터(Enter) 버튼을 누르면 입력한 텍스트가 제출(Submit)되도록 해주는 속성이다.
  • 따라서 텍스트 필드가 블러 처리되게 된다.
  • 기본값은 단일행(Single-line)의 경우 true, 다중 행(Multi-line)의 경우 false이다.
  • blurOnSubmit = true를 지정할 경우, 입력 후(Enter 키 입력 시) 필드가 자동으로 포커스를 잃는다.
  • blurOnSubmit = false를 지정할 경우, 입력 후에도 필드가 계속 활성화된다. (Enter 입력 시 줄바꿈)
  • 다중 행(multiline = true) 상태에서 blurOnSubmit = true로 설정하면, Enter 키를 누르면 포커스가 해제되며, 줄바꿈 대신 onSubmitEditing 이벤트가 발생한다.

 

submitBehavior 속성

개념

  • 최신 버전의 리액트 네이티브에서는 submitBehavior 속성을 이용하여 이 기능을 구현할 수 있다.
    • 기존의 blurOnSubmit 속성은 사용 중단(Deprecated)이 되었다.
<TextInput
multiline
submitBehavior="blurAndSubmit" // 엔터 키 누를 시, 포커스 해제 + onSubmitEditing
onSubmitEditing={() => console.log('제출됨!')}
placeholder="내용을 입력하세요"
/>

 

사용 가능한 옵션들

설명
newline - 엔터 키를 누르면 줄을 바꾼다. (기본값)
- 다중 행(Multi-line) 필드에 적용한다.
blurAndSubmit - 엔터 키를 누르면 필드가 포커스를 잃고(onBlur), onSubmitEditing이 실행된다.
- 이전의 blurOnSubmit = true와 동일하다.
submit - 엔터 키를 누르면 줄바꿈 없이 onSubmitEditing이 실행된다.

 

blurOnSubmit = true → submitBehavior="blurAndSubmit"  
blurOnSubmit = false → submitBehavior="newline"

 

참고 사이트

 

TextInput · React Native

A foundational component for inputting text into the app via a keyboard. Props provide configurability for several features, such as auto-correction, auto-capitalization, placeholder text, and different keyboard types, such as a numeric keypad.

reactnative.dev

 

728x90
728x90

blurOnSubmit 속성과 submitBehavior 속성들어가며blurOnSubmit 속성개념submitBehavior 속성개념사용 가능한 옵션들참고 사이트