You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中如何获取file-saver插件的文件下载状态?

实现file-saver下载PDF时的按钮状态切换

你可以通过React的状态管理来控制下载状态,从而实现按钮文本的切换,具体操作如下:

  1. 引入useState钩子定义下载状态变量
import { useState } from 'react';
import { saveAs } from "file-saver";

// 组件内部初始化状态
const [isDownloading, setIsDownloading] = useState(false);
  1. 修改下载函数,在PDF生成和下载流程中切换状态
    用try/finally包裹异步逻辑,确保无论PDF生成成功或失败,状态都能重置,避免按钮一直停留在"下载中"状态:
const GetPDF = async (event) => {
  event.preventDefault();
  // 开始下载,切换状态为"下载中"
  setIsDownloading(true);
  try {
    const blob = await pdf(<DocumentPDF />).toBlob();
    saveAs(blob, "custom-court-tool.pdf");
  } catch (err) {
    // 可在此添加错误处理,比如打印错误或提示用户下载失败
    console.error('PDF生成/下载失败:', err);
  } finally {
    // 下载完成/失败后,重置状态
    setIsDownloading(false);
  }
}
  1. 更新按钮的渲染逻辑
    同时建议给按钮添加disabled属性,避免用户重复触发下载:
<button onClick={GetPDF} disabled={isDownloading}>
  {isDownloading ? "In the process..." : "Download"}
</button>

内容的提问来源于stack exchange,提问作者s.kuznetsov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 23:47:03