[React Native] TextInput


TextInput

μ‚¬μš©μžλ‘œλΆ€ν„° ν…μŠ€νŠΈλ₯Ό μž…λ ₯받을 수 μžˆλŠ” μž…λ ₯ ν•„λ“œλ₯Ό 생성

πŸ€³πŸ»Β μ£Όμš” νŠΉμ§•:

  • ν…μŠ€νŠΈ μž…λ ₯: TextInput은 μ‚¬μš©μžκ°€ ν…μŠ€νŠΈλ₯Ό μž…λ ₯ν•  수 μžˆλŠ” μž…λ ₯ ν•„λ“œλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.
  • λ‹€μ–‘ν•œ μ˜΅μ…˜: TextInput은 λ‹€μ–‘ν•œ μ˜΅μ…˜μ„ 톡해 ν…μŠ€νŠΈ μž…λ ₯의 λ™μž‘μ„ μ»€μŠ€ν„°λ§ˆμ΄μ§•ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이전 λ‹΅λ³€μ—μ„œ μ„€λͺ…ν•œ 속성을 μ‚¬μš©ν•˜μ—¬ ν…μŠ€νŠΈ μž…λ ₯을 μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 이벀트 처리: onChangeText, onSubmitEditing, onFocus, onBlur λ“±μ˜ 이벀트λ₯Ό ν™œμš©ν•˜μ—¬ μ‚¬μš©μžμ˜ μž…λ ₯에 λ°˜μ‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 닀쀑 쀄 μž…λ ₯: multiline 속성을 ν™œμ„±ν™”ν•˜λ©΄ μ—¬λŸ¬ μ€„μ˜ ν…μŠ€νŠΈ μž…λ ₯을 μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • ν‚€λ³΄λ“œ μ œμ–΄: keyboardType을 μ‚¬μš©ν•˜μ—¬ λ‹€μ–‘ν•œ ν‚€λ³΄λ“œ μœ ν˜•μ„ μ„€μ •ν•  수 있으며, secureTextEntryλ₯Ό μ‚¬μš©ν•˜μ—¬ λΉ„λ°€λ²ˆν˜Έ μž…λ ₯을 μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • ν…μŠ€νŠΈ μŠ€νƒ€μΌλ§: style 속성을 μ‚¬μš©ν•˜μ—¬ μž…λ ₯ ν•„λ“œμ˜ μŠ€νƒ€μΌμ„ 지정할 수 μžˆμŠ΅λ‹ˆλ‹€.
  • ν”Œλ ˆμ΄μŠ€ν™€λ” ν…μŠ€νŠΈ: placeholder 속성을 μ‚¬μš©ν•˜μ—¬ μž…λ ₯ ν•„λ“œμ— ν”Œλ ˆμ΄μŠ€ν™€λ” ν…μŠ€νŠΈλ₯Ό ν‘œμ‹œν•  수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ€³πŸ»Β μ‚¬μš© 방법:

FlatListλ₯Ό μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” λ‹€μŒ 단계λ₯Ό λ”°λ¦…λ‹ˆλ‹€:

  1. TextInput μ»΄ν¬λ„ŒνŠΈ μž„ν¬νŠΈ:
import { TextInput } from "react-native";
  1. TextInput μ»΄ν¬λ„ŒνŠΈ μ‚¬μš©
import React, { useState } from "react";
import { View, TextInput } from "react-native";

function MyTextInput() {
  const [text, setText] = useState(""); // μƒνƒœλ₯Ό 톡해 ν…μŠ€νŠΈ 값을 κ΄€λ¦¬ν•©λ‹ˆλ‹€

  const handleChangeText = (newText) => {
    setText(newText); // ν…μŠ€νŠΈκ°€ 변경될 λ•Œ μƒνƒœλ₯Ό μ—…λ°μ΄νŠΈν•©λ‹ˆλ‹€
  };

  return (
    <View>
      <TextInput
        value={text}
        onChangeText={handleChangeText}
        placeholder="ν…μŠ€νŠΈλ₯Ό μž…λ ₯ν•˜μ„Έμš”"
      />
    </View>
  );
}

export default MyTextInput;
  1. μƒνƒœ 관리: TextInput의 값을 λ³€κ²½ν•˜λ €λ©΄ μƒνƒœ(state)λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. μœ„ μ˜ˆμ œμ—μ„œλŠ” this.state.textλ₯Ό 톡해 ν˜„μž¬μ˜ ν…μŠ€νŠΈ 값을 κ΄€λ¦¬ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
  2. 이벀트 처리: onChangeText, onSubmitEditing, onFocus, onBlur λ“±μ˜ 이벀트λ₯Ό μ‚¬μš©ν•˜μ—¬ μ‚¬μš©μž μž…λ ₯에 λ°˜μ‘ν•˜κ±°λ‚˜ νŠΉμ • λ™μž‘μ„ μˆ˜ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  3. ν‚€λ³΄λ“œ μ œμ–΄: keyboardType 속성을 μ‚¬μš©ν•˜μ—¬ μ›ν•˜λŠ” ν‚€λ³΄λ“œ μœ ν˜•μ„ μ„ νƒν•˜κ³ , secureTextEntryλ₯Ό μ‚¬μš©ν•˜μ—¬ λΉ„λ°€λ²ˆν˜Έ μž…λ ₯을 ν™œμ„±ν™”ν•©λ‹ˆλ‹€.
  4. 닀쀑 쀄 μž…λ ₯: multiline 속성을 true둜 μ„€μ •ν•˜μ—¬ μ—¬λŸ¬ μ€„μ˜ ν…μŠ€νŠΈ μž…λ ₯을 μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  5. μŠ€νƒ€μΌλ§: style 속성을 μ‚¬μš©ν•˜μ—¬ μž…λ ₯ ν•„λ“œμ˜ μŠ€νƒ€μΌμ„ μ§€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 폰트 크기, 색상, 배경색 등을 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

πŸ€³πŸ»Β μ†μ„± :

  1. value (string):
    • ν˜„μž¬ ν…μŠ€νŠΈ μž…λ ₯ ν•„λ“œμ˜ 값을 μ œμ–΄ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이 값을 μ„€μ •ν•˜λ©΄ μž…λ ₯ ν•„λ“œμ˜ λ‚΄μš©μ΄ λ³€κ²½λ©λ‹ˆλ‹€.
  2. defaultValue (string):
    • 초기 ν…μŠ€νŠΈ μž…λ ₯ ν•„λ“œμ˜ 값을 μ„€μ •ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€. μ‚¬μš©μžκ°€ μž…λ ₯ν•˜λŠ” λ™μ•ˆ 이 값은 λ³€κ²½λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  3. placeholder (string):
    • μž…λ ₯ ν•„λ“œμ— 아무 값도 없을 λ•Œ ν‘œμ‹œλ˜λŠ” ν”Œλ ˆμ΄μŠ€ν™€λ” ν…μŠ€νŠΈλ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.
  4. placeholderTextColor (string):
    • ν”Œλ ˆμ΄μŠ€ν™€λ” ν…μŠ€νŠΈμ˜ ν…μŠ€νŠΈ 색상을 μ„€μ •ν•©λ‹ˆλ‹€.
  5. editable (boolean):
    • μ‚¬μš©μž μž…λ ₯을 ν—ˆμš©ν• μ§€ μ—¬λΆ€λ₯Ό κ²°μ •ν•©λ‹ˆλ‹€. false둜 μ„€μ •ν•˜λ©΄ μž…λ ₯ ν•„λ“œκ°€ 읽기 μ „μš© μƒνƒœκ°€ λ©λ‹ˆλ‹€.
  6. maxLength (number):
    • μž…λ ₯ ν•„λ“œμ— μž…λ ₯ν•  수 μžˆλŠ” μ΅œλŒ€ 문자 수λ₯Ό μ œν•œν•©λ‹ˆλ‹€.
  7. keyboardType (string):
    • ν‚€λ³΄λ“œμ˜ μ’…λ₯˜λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, β€˜numeric’, β€˜email-address’, β€˜phone-pad’ 등이 μžˆμŠ΅λ‹ˆλ‹€.
  8. autoCapitalize (string):
    • μžλ™ λŒ€λ¬Έμž λ³€ν™˜μ„ μ„€μ •ν•©λ‹ˆλ‹€. β€˜none’, β€˜sentences’, β€˜words’, β€˜characters’ λ“±μ˜ 값을 κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.
  9. autoCorrect (boolean):
    • μžλ™ μˆ˜μ •μ„ ν™œμ„±ν™” λ˜λŠ” λΉ„ν™œμ„±ν™”ν•©λ‹ˆλ‹€. μ‚¬μš©μžκ°€ μž…λ ₯ν•˜λŠ” λ™μ•ˆ λ§žμΆ€λ²• ꡐ정을 μˆ˜ν–‰ν• μ§€ μ—¬λΆ€λ₯Ό κ²°μ •ν•©λ‹ˆλ‹€.
  10. secureTextEntry (boolean):
    • λΉ„λ°€λ²ˆν˜Έ μž…λ ₯ ν•„λ“œλ₯Ό λ§Œλ“€ λ•Œ μ‚¬μš©λ˜λ©°, μž…λ ₯ν•œ ν…μŠ€νŠΈλ₯Ό λ§ˆμŠ€ν‚Ήν•˜μ—¬ λ³΄ν˜Έν•©λ‹ˆλ‹€.
  11. onChangeText (function):
    • μž…λ ₯ ν•„λ“œμ˜ ν…μŠ€νŠΈκ°€ 변경될 λ•Œ ν˜ΈμΆœλ˜λŠ” 콜백 ν•¨μˆ˜λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.
  12. onSubmitEditing (function):
    • μ‚¬μš©μžκ°€ μž…λ ₯을 μ™„λ£Œν•˜κ³  β€œμ™„λ£Œβ€ λ˜λŠ” β€œλ‹€μŒβ€ λ²„νŠΌμ„ λˆŒλ €μ„ λ•Œ ν˜ΈμΆœλ˜λŠ” 콜백 ν•¨μˆ˜λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.
  13. onFocus (function):
    • μž…λ ₯ ν•„λ“œκ°€ 포컀슀λ₯Ό λ°›μ•˜μ„ λ•Œ ν˜ΈμΆœλ˜λŠ” 콜백 ν•¨μˆ˜λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.
  14. onBlur (function):
    • μž…λ ₯ ν•„λ“œκ°€ 포컀슀λ₯Ό μžƒμ—ˆμ„ λ•Œ ν˜ΈμΆœλ˜λŠ” 콜백 ν•¨μˆ˜λ₯Ό μ •μ˜ν•©λ‹ˆλ‹€.
  15. style (object):
    • μž…λ ₯ ν•„λ“œμ˜ μŠ€νƒ€μΌμ„ μ§€μ •ν•˜λŠ”λ° μ‚¬μš©λ©λ‹ˆλ‹€. 폰트 크기, 색상, 배경색 등을 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  16. multiline (boolean):
    • μ—¬λŸ¬ μ€„μ˜ ν…μŠ€νŠΈ μž…λ ₯을 κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€.
  17. numberOfLines (number):
    • multiline이 ν™œμ„±ν™”λœ 경우 ν‘œμ‹œν•  쀄 수λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€.