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!
我不明白为什么我返回的变量是未定义的?
答案 0 :(得分:0)
我不知道您使用的是哪个库,为什么不使用普通的 useEffect
,但我认为 useAsync
是异步的,因此它必须等待获取一些数据,然后这就是为什么 instanceData.instances
是 undefined
的原因,因为数据还没有来。最快的解决方法是在 const 值中添加问号:
const instances = instanceData?.instances;
const resource_name = instanceData?.resource_name;
但稍后在 jsx
中,您还必须检查它们是否未定义。
这是我的解决方案,但因为我不知道 useAsync 到底发生了什么,所以我不确定这是否可行。