React接收excel文件下载导出功能封装
因为最近项目又需求要导出excel,所以封装了这部分的功能,对fetch的封装做了修改,使之后的调用导出功能更为方便
首先这个项目请求是对fetch进行过封装的 ,如果对fetch有了解的话,我们知道fetch种response返回的是一个实现了Body接口的对象, 所以可以使用Body接口中的方法 json()
处理json,blob ()
处理成blob文件对象 方法, 所以要先对封装的请求方法做如下修改
export default function request(url, option,noToken = false,type = 'json') {
//这是封装request方法 noToken判断是否写代token type用来区别 json/blob 这里我们需要下载文件所以传入blob
...
.then(response => {
if (newOptions.method === 'DELETE' || response.status === 204) {
return response.text();
}
if(type == 'blob') {
return response.blob(); //处理成blob文件类型
}
return response.json()