onSubmitEditing:错误:超出最大更新深度

时间:2020-11-11 05:26:03

标签: react-native

我的屏幕上有一个文本输入。除此之外,还有一个搜索图标。按下搜索图标后,将调用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>

请指导我如何在按键盘上的“完成”或其他键时执行搜索。预先感谢。

1 个答案:

答案 0 :(得分:1)

尝试这样做

onSubmitEditing={() => this.searchmethod()}

代替onFocus,像onChangeText中的refreshData

this.setState({
            searchtag: text
        },
     () => this._refreshData();
)