React Native TextInput setState()隐藏键盘

时间:2019-05-17 05:40:18

标签: react-native react-native-android

请检查小吃链接, https://snack.expo.io/@banid/textinput 每当我调用setState()时,筛选器视图上的TextInput(显示何时按下按钮)都会隐藏键盘。我调用setState来更新TextInput的值。因此,我无法在TextInput上连续输入。这是一个错误还是我做错了什么?谢谢

2 个答案:

答案 0 :(得分:2)

问题是您正在创建一个全新(匿名)函数,该函数会在每次更新时呈现FlatList的标题

  

<FlatList .... ListHeaderComponent={() => this.showHeader()} />

因此,正在创建一个新的TextInput,而不是更新现有的TextInput。

解决方案

更改ListHeaderComponent={() => this.showHeader()}

作为{HeaderComponent的ListHeaderComponent={this.showHeader}可以是一个函数

https://facebook.github.io/react-native/docs/flatlist#listheadercomponent

类似问题: https://github.com/react-native-training/react-native-elements/issues/559

答案 1 :(得分:0)

似乎在每个setState之后,焦点都从TextInput上移开了,可以使用以下解决方法:

更改

this.setState({
    filterSearchText: text,
    data: newData,
});

收件人

this.setState({
    filterSearchText: text,
    data: newData,
}, () => {
    this.searchInput.focus();
});

这是什么,它会在调用setState之后将焦点重新带回searchInput