为什么TextInput上的onKeyPress无法在React Native(Android)中运行?

时间:2018-05-25 20:22:41

标签: android reactjs react-native

我正在使用本机反应并在Android上进行测试。我已经在我的TextInput中添加了一个onKeyPress,但是我没有通过单击模拟器中的键盘来触发它(是的,我使用鼠标单击键)。有没有人知道如何让onKeyPress工作或知道另一种方法来检测Android键盘上的输入(完成)键上的按键?

它甚至从未进入它应该调用的函数(searchProducts)。

searchProducts = () => {
    if (e.nativeEvent.key == "Enter"){
        this.props.searchFunc(this.state.term);
    }
}

searchSuggestions = searchTerm => {
    if (this.timeoutId)
        clearTimeout(this.timeoutId);
    this.timeoutId = setTimeout(() => this.props.autofillFunc(searchTerm), 500);

    this.setState({
        term: searchTerm
    });
}

componentDidMount() {
    if (this.props.autoFocus) {
        this.refs.searchBar.focus();
    }
}

render() {
    const {placeholder} = this.props;
    const autoFocus = this.props.autoFocus;
    return (
        <View style={styles.searchBar}>
            <TouchableHighlight style={{width: '100%'}}>
                <View style={styles.searchBar}>
                    <MBIcon name='ico-24-search' style={styles.searchIcon} />
                        <TextInput 
                            ref='searchBar'
                            style={styles.searchInput} 
                            placeholder={placeholder}

                            onChangeText={this.searchSuggestions}
                            onKeyPress={this.searchProducts.bind(this)}
                            underlineColorAndroid="transparent" 
                        />
                </View>
            </TouchableHighlight>
        </View>
    );
}

0 个答案:

没有答案