首页 > 解决方案 > 异步加载数据,一键下载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();
    });
  };

标签: javascriptreactjsexport-to-csv

解决方案


推荐阅读