javascript – 循环遍历文件网址数组并使用React下载每个文件网址

我正在努力做我认为’这将是一项简单的任务.当用户单击按钮时,我有一系列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中,这也会提示要求下载多个文件的权限.

点赞