首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >FileList.item不是一个函数吗?

FileList.item不是一个函数吗?
EN

Stack Overflow用户
提问于 2021-08-30 13:07:30
回答 1查看 550关注 0票数 0

每当我尝试访问FileList变量的item属性时,都会被告知它不是函数?为什么会这样呢?

首先,从类型文件的输入中获取所有文件,然后将它们推送到一个类型为FileList的数组,该数组成功地保存所选文件:

代码语言:javascript
运行
复制
files: any = [];

onImageSelect(files: any = FileList) {
    for(let i = 0; i < files.length; i++) {
      this.files.push(files.item(i));
    }
    console.log(this.files)
  }

上面的onImageSelect方法发生在文件输入的更改上:

代码语言:javascript
运行
复制
<input type="file" accept="image/*" multiple #fileUploader id="fileUploader" (change)="onImageSelect($any($event.target).files)">

现在我有了一个类型为FileList的数组,它保存了使用类型文件的输入选择的所有文件,我希望将每个文件上传到Firebase --这是通过将上述FileList数组中的每个文件推送到一个新的数组中完成的,这个数组也是FileList类型的:

代码语言:javascript
运行
复制
filesUploaded: any = [];

uploadImages(selectedFiles: any = this.files) {
    for (let i = 0; i < selectedFiles.length; i++) {
      this.filesUploaded.push(selectedFiles.item(i));
    }
  }

上面的uploadImages方法在单击时被调用:

代码语言:javascript
运行
复制
<button mat-raised-button color="secondary" (click)="uploadImages()">Upload</button>

然而,一旦调用,我会得到一个类型错误:"ERROR TypeError: selectedFiles.item不是一个函数“,为什么会这样呢?

EN

回答 1

Stack Overflow用户

发布于 2021-08-30 13:08:56

您可以添加一个可选运算符以避免错误。这是因为item没有在selectedFiles中定义。

selectedFiles?.item(i)

确保您在对象中实现了item函数,或者使用它来避免错误(尽管我更喜欢第一个选项)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68984706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档