как я могу отделить отдельные буквы от события onChange в react?

#reactjs #react-native #input #text #letter

#reactjs #react-native #ввод #текст #письмо

Вопрос:

Я новичок в React, и у меня проблема, которую я не знаю, как решить.

У меня есть состояние, которое отслеживает то, что я ввожу в TextInput. Но когда я утешаю.регистрируйте ввод, который я ввожу в TextInput, он показывает целые фрагменты, такие как ‘a’, ‘ab’, ‘abc’, по мере ввода. Я хочу иметь возможность контролировать каждый ввод, который я набираю, например ‘a’ ‘b’ ‘c’, а не весь ввод, такой как ‘abc’. Для этого я попробовал функцию map и split, которая, к сожалению, допустила некоторые ошибки.

Кто-нибудь может дать какой-нибудь совет? Я прилагаю некоторые строки ниже.

 const Words = () => {
  const [correctLetters, setCorrectLetters] = useState([]);
  const correctLettersHandler = (input) => {
  //console.log(input) -> it shows the whole inputs
  //const letter = input.map((letter) => letter.split("")); -> failed try
  setCorrectLetters(input);
  }
  return (
    <View>
     <TextInput
       value={correctLetters}
       onChangeTedt={correctLettersHandler}
    </View>
 }
  

Комментарии:

1. используйте onKeyPress , onKeyUp или onKeyDown в зависимости от того, какую часть процесса нажатия клавиши вы хотите прервать

Ответ №1:

Я рекомендую вам взглянуть на объект KeyboardEvent, чтобы получить полное представление о событиях клавиатуры.

Внизу указаны типы событий, которые принадлежат объекту KeyboardEvent (уже упомянутый Дереком в комментарии к вопросу):

  • onkeydown, событие, которое происходит, когда пользователь нажимает клавишу
  • onkeypress, событие, которое происходит, когда пользователь нажимает клавишу
  • onkeyup, событие, которое происходит, когда пользователь отпускает ключ