reactjs - useState 未在第一次渲染时注册
问题描述
我有一个非常简单的反应应用程序。我正在尝试设置一个状态变量,然后在 console.log 之后立即设置该变量,但得到一个空白值。
var [techFilterTerm, setTechFilterTerm] = useState('');
setTechFilterTerm('Test');
console.log(techFilterTerm);
我希望在第一次渲染时这会在控制台中显示“测试” - 但是它显示的是空字符串。这里发生了什么?
解决方案
如果我正确理解您的问题,您想知道更新的值,为此您可以使用 useEffect api,只要您要观察的值之一发生变化,就会调用该 API。您想要观察的值需要作为第二个参数作为 useEffect 中的数组传递。在您的情况下,您想知道 techFilterTerm 的更新值,以便您可以将 techFilterTerm 作为第二个参数传递给 useEffect,如下所示。
useEffect(() => {
//here you will get the updated value whenever there is change in value
},[techFilterTerm]);
这是有关 useEffect 的更多信息的链接。
推荐阅读
- python - PyDev 调试器不适用于 Queue.py 文件
- node.js - NodeJS Sequelize ORM db:seed:all 从 db 中删除表
- vba - 如何使用 VBA 调试字典中的打印键和值?
- leaflet - 预渲染您自己的 openstreetmap 栅格地图切片 (png) 的工作流程是什么?
- javascript - 电子商务网站上的产品过滤器表单没有关注/没有索引链接
- android - 如何将手表 apk 嵌入手机 apk?
- java - 我在实现“活动 FTP 服务器”时遇到问题
- html - 从不同的 Angular 6 组件访问用户输入
- android - 条目在 TreeMap 中是不公开的;无法从外部包访问
- sql - 在格式化字段中在哪里使用 FM 修饰符?