首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Reactinative中,是否可以在键盘打开时调用onPress

在Reactinative中,是否可以在键盘打开时调用onPress
EN

Stack Overflow用户
提问于 2018-04-14 22:08:36
回答 1查看 3.5K关注 0票数 6

用户需要在FlatList项上单击两次,因为autoFocus={true}用于<TextInput。在第一次单击时,键盘正在隐藏,然后单击调用onPress={this.GetItem.bind(this, item)}。是否有任何选项可以在第一次单击时调用GetItem()而不是单击两次。

演示:yWehM

代码语言:javascript
复制
export default class App extends Component {
  GetItem (item) {
    console.log(item);
    Alert.alert(item);
  }
  render() {
    return (
      <View style={styles.container}>
        <TextInput
          autoFocus={true}
          style={styles.paragraph}
          keyboardType='web-search'
        >
          Change code in the editor and watch it change on your phone!
          Save to get a shareable url.
        </TextInput>
        <Card title="Local Modules">
          <View>
            <TextInput
              style={styles.searchField}
              placeholder="Type here to translate!"
              onChangeText={(text) => this.setState({text})}
            />

            <FlatList
                data={["akin","alike","close","comparable","like","similar","uniform","Allied","Analogous","Co-ordinate","Commensurate","akin","alike","close","comparable","like","similar","uniform","Allied","Analogous","Co-ordinate","Commensurate"]}
                renderItem={({item}) => (
                  <Text
                    style={styles.listField}
                    onPress={this.GetItem.bind(this, item)}
                    >{item}</Text>
                )}
              />
          </View>
        </Card>
      </View>
    );
  }
}

该组件的目的是在<FlatList>中用户搜索时给出<TextInput>中的自动建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-14 22:25:52

keyboardShouldPersistTaps='handled'添加到FlatList中将防止键盘被排除onPress

代码语言:javascript
复制
<FlatList
    keyboardShouldPersistTaps='handled'
    data={["akin","alike","close","comparable","like","similar","uniform","Allied","Analogous","Co-ordinate","Commensurate","akin","alike","close","comparable","like","similar","uniform","Allied","Analogous","Co-ordinate","Commensurate"]}
    renderItem={({item}) => (
      <Text
        onPress={this.GetItem.bind(this, item)}
        >{item}</Text>
    )}
/>

always也用作keyboardShouldPersistTaps值。

keyboardShouldPersistTaps的官方文档

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49836648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档