reactjs - 如何更新状态以使搜索正常工作?
问题描述
如何更新状态以使搜索正常工作?
我尝试进行搜索,但得到以前的状态:
示例: 我写:谷歌控制台:googl
const onHandleSearchResult = e => {
setSearchValue(e.target.value);
};
<Search
placeholder="input search text"
onChange={onHandleSearchResult}
/>
解决方案
从您的示例来看,您似乎是console.log
在设置值之后执行的state
. 我相信您的代码如下所示:
setSearchValue = (searchedValue) => {
this.setState({ searchedValue });
console.log('searchedValue:', this.state.searchedValue);
}
但是,上面的代码不会像你提到的那样工作。原因是setState是异步的。如果要显示 的正确值state
,请使用 中的回调函数setState
。例如
setSearchValue = (searchedValue) => {
this.setState({ searchedValue }, () => {
console.log('searchedValue:', this.state.searchedValue);
});
}
这样,console.log
只有在设置值时才会发生state
。
推荐阅读
- javascript - Javascript 从标签中选择按文本选择
- javascript - 如何测试上下文菜单是否打开或显示?
- python - Discord py cogs 不加载命令
- android - Ionic & Capacitor - Android 闪屏响应
- node.js - 在 Express 路由中下载文件,提供给客户端,然后删除
- php - 没有 Stripe.JS 的 Stripe PHP 3D 安全支付?
- html - 如何在 Typescrip/Angular 中的字符串变量中传递 Break 并将该字符串绑定到
标签
- c# - 在“自动”中设置的行即使是空白也会带我整个屏幕
- amazon-web-services - 为 AWS Lambda 构建容器时出现 Init Failed 错误
- python - pyodbc + PostgreSQL ODBC:连接字符串有效,DSN 无效