我正在尝试为可能需要一段时间才能完成的后端操作设置进度条。
用户单击按钮以导出文件
API响应具有后端流程的令牌
使用useInterval,我每隔半秒检查进度%(使用另一个端点,发送令牌)以更新进度条组件
我简化了Codesandbox中的代码以重现此问题,在Codesandbox中,单击按钮时,我运行useInterval每隔4秒获取一张新的随机猫图片并更新我的钩子。
Codesandbox
据我了解,问题是因为我在自定义的Hook(useInterval)中调用了Hook,但是我不知道另一种方法,因为本机setInterval无法与Hook一起使用。
我使用了use-interval包
最佳答案
您不必用useInterval
包装useEffect
。 Internally useInterval
调用useEffect
使其起作用。
您可以更改组件中传递给useInterval
的值,新值将正确应用。您可以更改延迟或回调参数,useInterval
将应用它们。
为了展示,我添加了停止按钮,该按钮停止检索猫。
这是猫的working solution :-)