如何在 React 中分离多个进度百分比

Posted

技术标签:

【中文标题】如何在 React 中分离多个进度百分比【英文标题】:How to separate multi progress percentage in React 【发布时间】:2018-11-29 03:55:42 【问题描述】:

我可以在上传多个文件时显示一个进度百分比。如果我上传多个文件,如何分隔进度百分比?

//multi upload
fileuploadHandler = () => 

    const storageRef = fire.storage().ref();
    this.state.file.forEach((file) => 

      storageRef
          .child(`images/$file.name`)
          .put(file).then((snapshot) => 
            var uploadTask = storageRef.child(`images/$file.name`).put(file);
            uploadTask.on('state_changed', (snapshot) =>
                var progress = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
            var    fixprogress = progress.toFixed(2);
                this.setState(fixprogress);
                console.log('Upload is ' + fixprogress + '% done');
            )


      )

    );

  

这是我的按钮并显示进度百分比。

<button className="loginBtn2 loginBtn--U" onClick=this.fileuploadHandler>  Upload!</button> 
                            uploading this.state.fixprogress

【问题讨论】:

【参考方案1】:

使用传递给forEach 的第二个参数,您将获得一个索引。使用它来识别不同的文件并以不同的方式显示它们,如下所示:

//multi upload
fileuploadHandler = () => 

    const storageRef = fire.storage().ref();
    // USE THE SECOND PARAMETER: INDEX
    this.state.file.forEach( (file, index) => 

      storageRef
          .child(`images/$file.name`)
          .put(file).then((snapshot) => 
            var uploadTask = storageRef.child(`images/$file.name`).put(file);
            uploadTask.on('state_changed', (snapshot) =>
                var progress = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
            var    fixprogress = progress.toFixed(2);
            // NOW USE IT TO DISPLAY SPECIFIC STATE FOR THAT FILE
            this.setState(  progress:  ( "file" + index ) : fixprogress  );
            // LOG THE STATE
            console.log('Upload for file number #' + index + ' is ' + fixprogress + '% done');
            )
      )
    );
  

在这种情况下,您然后检索this.state.progress.file0 以获取第一个文件的进度。

【讨论】:

以上是关于如何在 React 中分离多个进度百分比的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Microsoft Azure 流分析上从多个设备中分离数据

如何从模板组件中分离模板(延迟加载模板)

echarts饼图的百分比如何在toolbox的数据视图获取

在React Native中分离buttonTouchableOpacity元素?

如何列出脚本中分离的进程?

C语言中如何控制只在某一个位置打印?比如进度百分比数字的显示。