我正在构建一个反应组件作为功能组件。 我要把它缩小到一个最小的问题,你可以把它想象成一个包含从外部 API 获取的数据的数据网格,这些数据被保存到该状态,以便它可以用于数据网格。
[orders, setOrders] = React.useState(getSomeIntialValuesToShowWhileFetching())
然后我有 useEffect 钩子只在安装时运行以获取数据。
useEffect(() => {
let res = await getDataFromApi();
setOrders(res);
}, [])
到目前为止一切顺利。现在我有另一个计算,需要在订单填充数据后完成,将其视为所有订单的总和。 由于
setOrders(res)
的异步性质,我该如何实现这一点?
我尝试使用另一个 useEffect,它的依赖数组中有命令。这里的问题是这也会在组件的初始安装上运行。
由于 setOrders 是异步的但不返回 Promise,我看不到等待它或将其与 then 操作链接的方法。
感谢您的回答,因为我仍在学习如何处理钩子。