javascript - 异步加载数据,一键下载CSV数据,比最新检索数据落后一步
问题描述
使用 react-csv 包,我异步加载数据,然后尝试一键从服务器下载检索到的数据。我目前面临的问题是点击比当前状态落后一步。当组件第一次呈现时,它会下载一个空的 CSV 文件,然后在第二次单击时,它会从上一次提取中下载数据,而不是从当前/最新提取中下载数据。这与此处描述的情况相同,但提到的解决方案没有在我的情况下工作:这里是正在处理的代码:
const [newData, setNewData] = useState([]);
const csvLink = React.createRef();
const csvExport = (
<div>
<Button className="pull-right title-button" onClick={getData}>
CSV Export
</Button>
<CSVLink data={newData} headers={headers} target="_blank" ref={csvLink}></CSVLink>
</div>
);
const getData = async () => {
await getRetailLinkOutcomes(auth, startDate, endDate, 0, 0, filters, sort, sortDirection, false).then((response) => {
setNewData(response.records);
csvLink.current.link.click();
});
};
解决方案
推荐阅读
- facebook - 如何使用 Facebook API 将另一个管理员添加到我的页面?
- javascript - 如何从 url 获取键值
- dump - 将转储文件移出当前文件夹时的 tcpdump 会话问题
- javascript - swiper.js 上的滑块在移动版中显示不正确
- vb6 - FoxitReader 打印无预览
- model-view-controller - 如何在基于 (MVC) 模型视图控制器的项目中实现 ACCM.dll 组件?
- mysql - 我们可以通过将字段更新为空来减少 MySQL 中的表大小吗
- python - 日期 Python 的 NAN
- terraform - CSV 中的 Terraform 变量和计数
- swift - 错误的 url 不会使用 combine 触发错误