javascript - 遍历文件 url 数组并使用 React 下载每个文件

标签 javascript arrays reactjs download

我正在尝试做我“认为”会很简单的任务。我有一组 URL,我想在用户单击按钮时循环访问这些 URL 并下载到客户端计算机上。

现在我有一个父组件,其中包含按钮和我想要循环下载的 url 数组(处于状态)。出于某种原因,我现在的做法是只下载其中一个文件,而不是数组的所有内容。

知道如何在 React 中正确执行此操作吗?

handleDownload(event){
        var downloadUrls = this.state.downloadUrls;
        downloadUrls.forEach(function (value) {
            console.log('yo '+value)
        const response = {
              file: value,
        };                
            window.location.href = response.file;

        })
    }

最佳答案

我会使用 setTimeout 在下载每个文件之间稍等片刻。

handleDownload(event){
    var downloadUrls = this.state.downloadUrls.slice();
    downloadUrls.forEach(function (value, idx) {
        const response = {
          file: value,
        };
        setTimeout(() => {
            window.location.href = response.file;
        }, idx * 100)
    })
}

在 Chrome 中,这也会提示请求多个文件下载的权限。

关于javascript - 遍历文件 url 数组并使用 React 下载每个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43748936/

相关文章:

javascript - 在 Javascript 文件中使用 Ruby/Rails 代码

javascript - 动态改变 Angular 2 Validators.maxLength 的 maxLength 值

reactjs - 为什么将观察者添加到 react-query 会导致它忽略其 `enabled` 属性?

reactjs - 尝试使用 webpack 和 babel 加载 css 时出现意外标记

Javascript嵌套循环输出带有文本的矩形

javascript - 从Object生成JS类文件

javascript - 使用关联数组中的键检索值

ruby - 根据键的值将哈希数组一分为二

ruby - 如何在 Ruby 中合并数组中的子数组?

css - 覆盖 index.html css react 元素