我有一个React CSV Downloader插件的问题,如下所示:
export default function Component(props) {
...
[data, setData] = useState([]);
...
const downloadData = async () => {
return new Promise(async (resolve, reject) => {
// make request via axios
return data;
try{
...
// do some logic to clean the data
...
setData(cleanedData);
resolve(data); // also tried resolve(cleanedData);
} catch (error) {
console.log(error);
reject(error);
}
});
};
return (
<CsvDownload
datas={downloadData}
filename={"name"}
extension=".csv"
handleEmpty={() => void 0}
>
<Button>Download</Button>
</CsvDownload>
);
}
问题是,当下载CSV时,第一次下载文件时它是空的。第二次单击下载按钮后,CSV将被填充。有谁能帮我解释一下这里发生了什么吗?
谢谢.
1条答案
按热度按时间s4n0splo1#
别担心把它更新到下面。使用useEffect & useRef仅在useEffect具有可供下载的数据之后,在清除数据之前,触发CSVDownloader的Click()函数。
希望这能帮助到某人。