【问题标题】:ReactNative: Dismiss Keyboard on scroll of Multiline TextInputReactNative:在多行文本输入滚动时关闭键盘
【发布时间】:2019-08-26 23:26:32
【问题描述】:

我正在使用多行 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

【问题讨论】:

    标签: ios react-native


    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 2022-06-14
      • 1970-01-01
      • 2020-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-26
      相关资源
      最近更新 更多