useAsync

来源:7-2 用高级 Hook-useAsync统一处理Loading和Error状态

yjies

2021-03-24

你好,老师,有两个问题请教,谢谢。

  1. result里会返回isLoading,它有几个状态的变化,从idle -> loading -> success. 请问一下代码在这里的执行过程. useAsync是一直动态的获取
    数据返回给调用它的方法吗?因为从常规理解上,赋值只是一次发生的动作。
const {run,...result} = useAsync<Project[]>();

请问这里有几个方法,这种用法是TS的自有的吗?

    return {
        isIdle:state.stat === 'idle',
        isLoading:state.stat === 'loading',
        isError: state.stat === 'error',
        isSuccess: state.stat === 'success',
        run,
        setData,
        setError,
        ...state
    }
写回答

1回答

Nolan

2021-03-25

  1. 你可以理解为在每次useAsync的父组件(使用useAsync的组件)渲染的时候,useAsync都会被执行一次,所以每次渲染可能都拿到不一样的值:  idle -> loading -> success

  2. 都是JS的方法

0
2
Nolan
回复
慕先生5461412
对 没错
2021-08-12
共2条回复

React17+Hook+TS4 优质实践,仿 Jira 企业级项目

解锁 React17 高阶用法,轻松应对大型复杂长周期项目

2691 学习 · 1236 问题

查看课程