hooks icon indicating copy to clipboard operation
hooks copied to clipboard

useRequest的loadingDelay失效

Open uWydnA opened this issue 4 years ago • 7 comments

官方demo复现出了BUG:https://codesandbox.io/s/white-resonance-jsmxv?fontsize=14&hidenavigation=1&theme=dark

uWydnA avatar Apr 13 '21 08:04 uWydnA

测试了下,没问题呀,正常 work 的~ 0 0.

brickspert avatar Apr 21 '21 12:04 brickspert

@brickspert ok,是我误解了loadingDelay,他是延迟loading变成true的时间,相当于如果这个异步返回的特别快,则不会loading从true->false的过程,至少对外暴露的loading不会。但我有一个问题,假设我们希望有变化,但延迟从true->false的这个变化过程,即异步loading的变化有一个最小保持时间,后续会有这样的参数去设置吗?(目前都是自己在代码里做这种最小保持时间,很蠢=。=)

uWydnA avatar Apr 27 '21 01:04 uWydnA

@brickspert ok,是我误解了loadingDelay,他是延迟loading变成true的时间,相当于如果这个异步返回的特别快,则不会loading从true->false的过程,至少对外暴露的loading不会。但我有一个问题,假设我们希望有变化,但延迟从true->false的这个变化过程,即异步loading的变化有一个最小保持时间,后续会有这样的参数去设置吗?(目前都是自己在代码里做这种最小保持时间,很蠢=。=)

在什么样的业务场景下需要 loading 有一个最小时间呢?能描述下你的业务诉求吗?

brickspert avatar Apr 27 '21 09:04 brickspert

假设我有一个PUT接口用于表单数据的更新,我需要用loading的true/false来对应页面上显示的保存草稿成功/正在保存草稿。 但由于接口返回速度有可能会比较快,因此我希望这个loading有一个最小的保持时间可以进行设置。 这样接口返回后,如果未达到我设置的这个最小保持时间,那么依然保持true,而我的页面上依然显示正在保存草稿,达到最小保持时间后,恢复false,我的页面上显示保存草稿成功。 这种场景应该在前端还蛮常见的吧?比如列表下拉刷新的最小保持时间(如果只根据接口返回来关闭下拉刷新的话,接口返回过快的情况下就会出现快速闪烁的情况)

uWydnA avatar May 02 '21 07:05 uWydnA

这个诉求我考虑下。

还是觉得比较奇怪,我觉得正确的就是接口请求成功之后,立即告诉用户成功了。

brickspert avatar May 06 '21 04:05 brickspert

假设接口从请求开始到请求成功只花了10ms,会出现文字或动画的抖动,对用户体验不是很友好,所以需要一个loading变化的最小保持时间

uWydnA avatar May 08 '21 03:05 uWydnA

@brickspert ok,是我误解了loadingDelay,他是延迟loading变成true的时间,相当于如果这个异步返回的特别快,则不会loading从true->false的过程,至少对外暴露的loading不会。但我有一个问题,假设我们希望有变化,但延迟从true->false的这个变化过程,即异步loading的变化有一个最小保持时间,后续会有这样的参数去设置吗?(目前都是自己在代码里做这种最小保持时间,很蠢=。=)

文档是"delay the time when loading turns to true",我也误解成"delay the time when loading turns to false",当成节流来用了

chocking avatar Nov 28 '23 09:11 chocking