使用umi中的useRequest函数获取返回值中的data为空的问题
2023-12-30 17:38:07
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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!