reactjs - 如何将 useEffect 用于没有依赖关系的 useState 变量?
问题描述
我正在创建一个 React 表单,该表单在本地状态下存储了新产品列表,即
const [listItem, setListItem] = useState([]);
我有提交处理程序,我在其中附加新值,例如-
const handleAddProduct = (data) => {
setListItem ([...listItem], data)
console.log('ListItems-', listItem); // my console log doesn't update state but in react debugger tool I do see it's updated.
}
如何使用 useEffect 使其始终更新状态?PS - 数据不是本地状态,它仅限于某个块。
解决方案
状态更新是异步的,不会立即反映。仅在下一个周期。这就是您可以签入 useEffect 的原因:
useEffect(() => {
console.log(listItem);
},[listItem]);
状态正在正确更新。
与问题无关,但是,如果您要添加到数组中,您可能想要这样做:
const handleAddProduct = (data) => {
setListItem ([...listItem, data]);
}
推荐阅读
- django - 上传到 Django 中的 FileField 时保留文件名
- git - 将 Git 存储库从 GitHub 分叉到 GitLab
- c++ - 如何挂钩延迟导入
- maven - maven 依赖项:copy-dependencies 错误地重命名了 .so 依赖项
- java - 在 IntelliJ IDEA 2018.1 中运行 JUnit 5 测试时出错
- java - 发现异常后继续执行
- angularjs - AngularJs:页面加载时自动打开模式
- html - 如何在html表格的一行中对齐数据单元格元素?
- javascript - Array.find 不是函数错误
- asp.net - vs 2017 企业行为不同的调试 vs 发布版本