javascript - 无法在 useEffect 中更新状态
问题描述
我正在尝试使用从 Contentful 获取的产品更新状态,但它们不会立即更新。
我在 useEffect 中调用 getProducts():
useEffect(() => {
getProducts(products, setProducts);
}, []);
在我的 getProducts() 函数中,我从 Contentful 获取数据,将其设置为状态(产品),然后将相同的状态保存到 localStorage。
export async function getProducts(products, setProducts) {
try {
let contentful = await client.getEntries("products");
setProducts(contentful.items);
saveProducts(products);
} catch (error) {
console.log(error);
}
}
问题是,当我将它保存到 localStorage 时,我得到一个空数组。
我不知道我使用 useEffect 是否有误,但如果有人能帮助我,我会很高兴。
解决方案
推荐阅读
- kalman-filter - 在扩展卡尔曼滤波器中计算状态空间模型和测量模型的雅可比矩阵
- java - 使用具有标准 WebRTC API 的 AntMedia 服务器
- bash - 查找调用我的 bash 脚本的文件或代码行
- computer-vision - 实现快速且容易出错的对象跟踪的最有效方法是什么?
- javascript - 应用过滤器时突出显示或标记表格中的过滤值 - 制表器表格
- javascript - 使用 scrollX 时数据表宽度不匹配:true
- azure-devops - 如何使用 Azure DevOps 和 PowerShell 删除 Azure VM 上失败的扩展运行?
- azure - 从 Azure 数据工厂将文件作为八位字节流上传
- java - 用于列表、集合等集合的 Spring Standalone util 架构
- hyperledger-fabric - HyperLedger Fabric - configtx.yaml 策略 - 加入通道接收访问被拒绝