【发布时间】:2021-07-08 00:16:30
【问题描述】:
我正在尝试在我的组件中添加一个选项以将数据下载为 CSV 文件。但是,下面的代码有时会打印一个垃圾字符,而在其他时候也可以。我不明白我在这里做错了什么。我尝试按照此处提供的示例进行操作:https://github.com/react-csv/react-csv#readme
这是我的代码
import React, { useState } from "react";
import axios from "axios";
import {
Card,
CardHeader,
CardTitle,
DropdownItem,
DropdownMenu,
DropdownToggle,
Table,
UncontrolledDropdown,
Progress
} from "reactstrap";
import { MoreHorizontal } from "react-feather";
import { CSVLink } from "react-csv";
const Languages = () => {
const [data, setData] = useState([]);
return (
<Card className="flex-fill w-100">
<CardHeader>
<div className="card-actions float-right">
<UncontrolledDropdown>
<DropdownToggle tag="a">
<MoreHorizontal />
</DropdownToggle>
<DropdownMenu right>
<DropdownItem><CSVLink data={data} filename={'my-file.csv'} asyncOnClick={true}
onClick={(event, done) => {
axios.get("http://localhost:9091/api/returnIndices", {
params: {
view: 'Series',
bucket: '3_7',
group: 'Ratings',
metric: 'Price Return',
download: true
}
}).then((response) => {
const data = response.data.payload;
console.log(data);
setData(JSON.parse(data));
done(false); // REQUIRED to invoke the logic of component
});
}}>Download me</CSVLink></DropdownItem>
</DropdownMenu>
</UncontrolledDropdown>
</div>
<CardTitle tag="h5" className="mb-0">
Languages
</CardTitle>
</CardHeader>
</Card>
);
}
export default Languages;
【问题讨论】:
标签: javascript reactjs reactstrap