Как мне получить значение в TextInput, когда onBlur вызывается?
В React native я хочу передать значение TextInput в обработчике событий onBlur.
onBlur={(e) => this.validateText(e.target.value)}
E. цель.значение работает для простой реакции. Но в react-native, то есть target.значение не определено. Какова структура args событий, доступных в react-native?
3 ответов:
В React Native вы можете получить значение TextInput из
К сожалению, это не работает дляe.nativeEvent.text.multiline={true}. Один из способов обойти это-сохранить ссылку на вашTextInputи получить доступ к текстовому значению через свойство_lastNativeTextкомпонента. Например (предположим, что вы присвоили своему компонентуTextInputссылку "textInput"):
onBlur={() => console.log(this.refs.textInput._lastNativeText)}
Вы должны использовать метод 'onEndEditing' вместо 'onBlur'
OnEndEditing?: функция обратного вызова, которая вызывается при завершении ввода текста.
OnBlur-это компонентная функция, где onEndEditing специфичен для TextInput
Этот подход работает как для многострочных, так и для однострочных линий.
<TextInput onEndEditing={(e: any) => { this.setState({textValue: e.nativeEvent.text}) } }/>
Простое решение: Это далеко от электронной почты вашего государства будет всегда иметь последнее значение, измененное пользователем.
validate = () => { const { email } = this.state console.log('Validating Email Here!', email) } <TextInput style={styles.input} placeholder='E-mail' onChangeText={email => this.setState({email})} onBlur={e => this.validate()} />
Comments