我有一个搜索输入框,希望能实现“实时搜索”,也就是当用户更改输入文本的值时,结果会更新!我使用的是React Native和SQLite作为本地数据库。
现在的问题是,“set_state”函数在“search_user”函数之后执行!当我输入用户ID“2”时,我没有收到任何结果,但是当我删除“2”时,我收到了“2”的结果。因此我得出结论:这两个函数必须按照第一和第二的顺序执行!如果您有其他解决方案或如何解决此问题,请告知?
searchUser = () => {
const { input_user_id } = this.state;
console.log(this.state.input_user_id);
db.transaction(tx => {
tx.executeSql(
'SELECT * FROM table_user where user_id = ?',
[input_user_id],
(tx, results) => {
var len = results.rows.length;
console.log('len', len);
if (len > 0) {
this.setState({
userData: results.rows.item(0),
});
} else {
alert('No user found');
this.setState({
userData: '',
});
}
}
);
});
};
constructor(props) {
super(props);
this.state = {
input_user_id: '',
userData: '',
};
}
这是我的文本输入框
<Mytextinput
placeholder="Enter User Id"
onChangeText={input_user_id => {this.searchUser(this); this.setState({ input_user_id }); }}
style={{ padding:10 }}
/>