You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Redux Toolkit Query status废弃后如何用isLoading等判断请求状态?

Redux Toolkit Query 废弃status后请求状态判断方法

你说的「isLoading和isFetching为false且isSuccess为true对应fulfilled状态」是完全正确的,下面把各个请求状态的判断逻辑理清楚,同时区分首次加载和后续请求的不同场景:

各状态对应判断逻辑

  • Pending(首次加载中):isLoading === true,仅在第一次发起请求、还未拿到任何结果时触发。
  • Fetching(后续请求中):isFetching === true,适用于已经获取过数据,正在重新请求(比如轮询、手动触发重取)的场景。
  • Fulfilled(请求成功完成):isLoading === false && isFetching === false && isSuccess === true,此时数据已经成功返回并可正常使用。
  • Rejected(请求失败):isError === true,不管是首次加载失败还是后续请求失败,都用这个状态判断。

结合你的代码示例的实际使用

const {
  data,
  isLoading,
  isError,
  isFetching,
  isSuccess
} = useGetUsersQuery()

// 首次加载中
if (isLoading) {
  return <div>正在加载用户数据...</div>
}

// 已有数据,正在刷新
if (isFetching) {
  return <div>正在刷新用户数据...</div>
}

// 请求失败
if (isError) {
  return <div>加载用户数据失败,请稍后重试</div>
}

// 请求成功完成(对应原fulfilled状态)
if (isSuccess) {
  return (
    <ul>
      {data.map(user => (
        <li key={user.id}>{user.name}</li>
      ))}
    </ul>
  )
}

补充说明

isLoading和isFetching的核心区别在于:isLoading只针对首次请求的等待阶段,而isFetching覆盖所有请求(首次、后续)的等待阶段,这种拆分能让你更精准地给用户展示不同的加载提示(比如首次加载用骨架屏,后续刷新只显示小加载图标)。

内容的提问来源于stack exchange,提问作者TSDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 16:22:03