【发布时间】:2021-12-21 20:51:00
【问题描述】:
我有一个 react native 应用程序,我在其中获取客户的订单并在特定屏幕的餐厅一侧显示它们,我正在使用 fetch api 来获取数据, 所以工作流程是客户首先下订单并将其存储在数据库中,在餐厅方面我有这个功能:
const loadData = async () => {
const response = await fetch(`${API_URL}/getActiveOrders?ID=${id}`);
const result = await response.json();
if (result.auth === true) {
setCurrentOrders(result.data)
} else {
setCurrentOrders([])
}
}
useEffect(() => {
const interval = setInterval(() => {
loadData();
}, 1000)
return () => clearInterval(interval)
}, [id]);
因为在这个函数中它每秒运行一次,它会调用快速服务器以从数据库中获取数据,这样我就可以让餐厅毫不拖延地接收订单。但我注意到,当间隔设置为 1 秒时,该应用程序出现了滞后,并且它不断频繁地调用快速服务器。
我的问题:这是执行与这种情况相同的最佳方法(在客户下订单时获取订单)还是有更好的方法来做到这一点而不会滞后因为在获取大数据时性能会保持不变还是会出现一些问题?
【问题讨论】:
-
我认为您不希望
CurrentOrders作为您的useEffect的依赖项。可能是id,因为它被用于loadData -
@Phil 感谢这个通知,我会更新我的代码,无论如何你对我的担忧有什么想法吗?谢谢。
标签: javascript react-native express react-hooks fetch