json - 单击按钮后 CSV 不下载,
问题描述
每当我单击该按钮时,它只显示日志并且没有开始下载我正在生成的 csv 文件。我不知道我应该使用什么方法。我只是反应和 javascript 的新手。
这是我的代码,
getReport = async function(){
const jsonUrl = 'https://us-central1-connected-nursing-home-2.cloudfunctions.net/retrieveEHR';
const res = await fetch(jsonUrl);
const json = await res.json();
console.log(json);
const data = json.map(row=> ({
firstName : row.firstName,
lastName : row.lastName,
birthDate : row.birthdate,
}));
const download = function(data){
const blob = new Blob([data, {type: 'text/csv'}]);
const url = window.URL.createObjectURL(blob);
const link = document.createElement('a');
// link.setAttribute('hidden','');
link.setAttribute('href',url);
link.setAttribute('download','data.csv');
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
const csvData = objectToCsv(data);
console.log(csvData);
}
const objectToCsv = function(data){
const csvRows = [];
const headers = Object.keys(data[0]);
csvRows.push(headers.join(','));
console.log(csvRows)
for (const row of data){
const values = headers.map(header => {
const escaped = (''+row[header]).replace(/"/g,'\\"');
return `"${escaped}"`;
});
csvRows.push(values.join(','));
};
return csvRows.join('\n')
}
}
这是我的按钮
<Button className="ehr-export-btn"
name="Export to PDF"
onClick={this.getReport}>
<FontAwesomeIcon icon={faFilePdf} size="lg" /></Button>
解决方案
推荐阅读
- java - 如何让用户使用正则表达式 java 输入某种格式
- python - 对象不显示可用方法
- javascript - 反应内存泄漏 - 当通过传递给提供者的孩子的函数更新上下文提供者中的状态时
- powershell - 为什么“Get-PowerBIDataset”Powershell 命令会为我提供工作区中的所有数据集?
- python - python bytearray 到 C++ 对象
- unit-testing - 如何在具有特定结构的 golang 应用程序中运行测试并获得覆盖率?/
- java - Chrome 和 selenium 无头开关?
- git - 从远程 git repo 克隆时权限被拒绝(公钥)
- android - Appium根据当前设备时间设置Android时间
- javascript - 使用 Jquery .html() 函数替换后,如何从 Javascript 中的内存中删除函数与