与大多数遇到此问题的人不同,当我在TextInput的onSubmitEditing中使用this.myFunc调用函数时,会得到最大的更新深度错误。
我尝试过使用箭头功能,而不是,在该功能后添加了.bind和(),但没有解决此问题的方法
storeData = async () => {
try {
await AsyncStorage.setItem(this.state.title, this.state.text);
} catch (e) {
// saving error
}
};
//other code, render stuff etc.
<TextInput
placeholder="Event Due Date"
onChangeText={text => this.setState({text})}
onSubmitEditing={
(() => this.storeData, //this line fires the error
this.setState({
display: 'none',
text: '',
title: '',
reminders: (this.state.reminders += 1),
}))
}
value={this.state.text}
style={[styles.textInput, {display: this.state.display}]}
/>
当我删除this.storeData时,setState可以正常工作,但是添加该行会引发错误。目的是让用户完成编辑后(通过单击键盘上的复选标记)执行storeData方法
答案 0 :(得分:0)
此代码可能会帮助
storeData = async () => {
try {
await AsyncStorage.setItem(this.state.title, this.state.text);
this.setState({
display: 'none',
text: '',
title: '',
reminders: (this.state.reminders += 1),
});
} catch (e) {
// saving error
}
};
onSubmitEdit = () => {
this.storeData();
}
//other code, render stuff etc.
<TextInput
placeholder="Event Due Date"
onChangeText={text => this.setState({text})}
onSubmitEditing={this.onSubmitEdit} />
value={this.state.text}
style={[styles.textInput, {display: this.state.display}]}
/>