#ios #react-native
#iOS #реагировать-родной
Вопрос:
Я использую многострочный текстовый ввод, и я хотел бы отключить клавиатуру при прокрутке с помощью реквизита onScroll ()
Код, который я пробовал:
<View>
<TextInput
onChangeText={(bodyContent) => this.setState({bodyContent})}
value = {this.state.bodyContent}
editable = {true}
multiline={true}
onScroll = {() => Keyboard.dismiss() }
/>
</View>
Также заметил, что события onScroll не запускаются при прокрутке (даже пробовал с console.log( ) )
- react-native»: «0.57.3»
- Платформа: IOS
Ответ №1:
Вы правы, onScroll не запускается. Существует проблема по этой теме, однако, поскольку человек, создавший проблему, использовал устаревшую версию RN, проблема была закрыта. Вы должны открыть новый выпуск с новейшей версией RN. Я использовал RN 0.59, так что это определенно все еще проблема.
Ссылка на проблему:https://github.com/facebook/react-native/issues/20309
Вот моя реализация, которую можно скопировать и вставить куда угодно:
import React, { useState } from 'react';
import { StyleSheet, TextInput, View, Keyboard } from 'react-native';
const FormInput = () => {
const [text, setText] = useState();
return (
<View style={styles.container}>
<TextInput
onChangeText={setText}
value={text}
editable
multiline
onScroll={() => Keyboard.dismiss()}
style={{ flex: 1, backgroundColor: 'red' }}
/>
</View>
);
};
const styles = StyleSheet.create({
container: {
flex: 1
}
});
export default FormInput;