返回dict时React useAsync钩子返回未定义

时间:2021-07-01 20:12:26

标签: reactjs react-hooks

const { value: instanceData, loading: isLoading } = useAsync(async () => {
    instances = [];
    resource_name = "hello"
    return {instances, resource_name}l
  }, []);
  const instances = instanceData.instances; // undefined!
  const resource_name = instanceData.resource_name; // undefined!

我不明白为什么我返回的变量是未定义的?

1 个答案:

答案 0 :(得分:0)

我不知道您使用的是哪个库,为什么不使用普通的 useEffect,但我认为 useAsync 是异步的,因此它必须等待获取一些数据,然后这就是为什么 instanceData.instancesundefined 的原因,因为数据还没有来。最快的解决方法是在 const 值中添加问号:

  const instances = instanceData?.instances; 
  const resource_name = instanceData?.resource_name; 

但稍后在 jsx 中,您还必须检查它们是否未定义。

这是我的解决方案,但因为我不知道 useAsync 到底发生了什么,所以我不确定这是否可行。