#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, событие, которое происходит, когда пользователь отпускает ключ