##【React】【下载功能实现总结】结合GET或POST请求接口,下载服务器端文件 在日常系统开发中,最多见的是结合使用GET请求方式的接口实现excel等文件的下载导出。(下面将给出GET方法)。那若是后台给你post接口让你实现下载功能又将怎么写呢?在react的技术栈下,下面将给出这两种的实现方法。react
<Button onClick={this.download}>下载</Button>
打开新的标签页的方式 get方法,若是要带参数的,直接在query上传递参数,可有多个参数,用“&”符号隔开,每一个参数的名和值用“=”符号隔开。api
download = () => { window.open(`/react/get/downloadPdf?id=${this.props.id}&name=${this.props.name}`) };
使用ReactDOM建立临时form表单,再自行提交。服务器
// 隐藏的div Dom结构,用于存放临时form <div id="downloadDiv" style={{ display: 'none' }} />
// 导出数据处理函数 download = () => { const {date} = this.state; // 结合隐藏form表单进行react和post接口下载数据 let divElement = document.getElementById('downloadDiv'); ReactDOM.render( <form action="/api/post/export" method="post" target="_blank"> <input name="date" type="text" value={date} /> // 变量参数值 <input name="status" type="text" value="1" /> </form>, divElement ); ReactDOM.findDOMNode(divElement) .querySelector('form') .submit(); ReactDOM.unmountComponentAtNode(divElement); };