我的屏幕上有一个文本输入。除此之外,还有一个搜索图标。按下搜索图标后,将调用this.searchmethod()并执行搜索。我也想在按下键盘上的“搜索”,“完成”,“执行”或“输入”按钮时执行搜索。我尝试如下所示的onSubmitEditing,这导致了错误:
错误:超出最大更新深度 我的代码:
<TextInput
onChangeText = {
text => {
this.setState({
searchtag: text
})
}
}
onSubmitEditing={this.searchmethod()}
onFocus = {() => {
if (this.state.searchtag != "")
this.setState({
searchtag: ''
}, () => {
this._refreshData()
})
}
}
/>
<TouchableWithoutFeedback
onPress = {
() => {
this.searchmethod()
}
} >
<View>
<FearIcon name = "search" size = {25}/>
</View>
</TouchableWithoutFeedback>
请指导我如何在按键盘上的“完成”或其他键时执行搜索。预先感谢。
答案 0 :(得分:1)
尝试这样做
onSubmitEditing={() => this.searchmethod()}
代替onFocus,像onChangeText中的refreshData
this.setState({
searchtag: text
},
() => this._refreshData();
)