浙江中钦建设有限公司网站,门户网站建设技术方案,店铺名字设计logo,北京专业网站优化umi是一个react脚手架#xff0c;最近有一个功能#xff0c;需要在组件第一次渲染前请求一次#xff0c;后面组件重新渲染不需要再次发送请求。要实现这种功能#xff0c;我决定使用umi里面的一个hook函数#xff0c;即useRequest。请求代码如下
const {data:categorys}u…umi是一个react脚手架最近有一个功能需要在组件第一次渲染前请求一次后面组件重新渲染不需要再次发送请求。要实现这种功能我决定使用umi里面的一个hook函数即useRequest。请求代码如下
const {data:categorys}useRequest(async () {const resultawait Category.getAll()const categorys{} as anyresult.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 resultawait Category.getAll()const categorys{} as anyresult.data?.forEach(category categorys[category.id as number]{text:category.name})return {data:categorys}
})返回值改成{data:categorys}就可以了