ReactNative:在多行TextInput滚动时关闭键盘

时间:2019-04-05 05:48:58

标签: ios react-native

我正在使用多行TextInput,并希望在使用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 个答案:

答案 0 :(得分:3)

是的,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;