使用umi中的useRequest函数获取返回值中的data为空的问题

发布时间:2023年12月30日

umi是一个react脚手架,最近有一个功能,需要在组件第一次渲染前请求一次,后面组件重新渲染不需要再次发送请求。要实现这种功能,我决定使用umi里面的一个hook函数,即useRequest。请求代码如下

const {data:categorys}=useRequest(async () => {
   	const result=await Category.getAll()
    const categorys={} as any
    result.data?.forEach(category => categorys[category.id as number]={text:category.name})
    return categorys
})

结果发现,categorys值始终为undefined,也就是说,useRequest返回对象的data属性始终为undefined。
后来经过反复尝试,发现useRequest函数传入的第一个参数必须是一个异步函数,并且这个异步函数的返回值必须是一个包含data属性的对象,否则封装后的响应数据就获取不到。修改后的代码如下

const {data:categorys}=useRequest(async () => {
    const result=await Category.getAll()
    const categorys={} as any
    result.data?.forEach(category => categorys[category.id as number]={text:category.name})
    return {data:categorys}
})

返回值改成{data:categorys}就可以了

文章来源:https://blog.csdn.net/woshihedayu/article/details/135306518
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。