FileList、React、Typescript 的迭代

2024-01-02

我正在“重新调整”文件输入,但无法迭代选定的文件。

private onInputChanged = (e: React.FormEvent<HTMLInputElement>): void => {
  let files: FileList | null =  e.currentTarget.files;
  files.map( file => console.log("Do something with " + file.name));
}
<input 
    type="file"
    onChange={this.onInputChanged}
/>

这是我的问题的一个简单示例。 FileList 不能与 .map(... 一起使用,也不能与 .forEach(...

如何完成选定文件的迭代?

错误:“FileList”类型上不存在属性“map”


FileList https://developer.mozilla.org/en-US/docs/Web/API/FileList是一个类似数组的对象,具有length属性和索引值,但它缺少数组方法,例如map。通过 ES6 你可以使用spread https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_syntax or 数组#来自 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from将其转换为真正的数组。在 ES5 中你可以调用数组#切片 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice转换为数组,或者call https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/callFileList 上的方法。

Note:如果 Array#from 导致打字稿 |数组.from |错误 TS2339:类型“ArrayConstructor”上不存在属性“from”错误,修改默认值target(es3) 到 ES6 -"target": "ES6"- 在里面编译器选项 https://www.typescriptlang.org/docs/handbook/compiler-options.html of the “tsconfig.json”,或在命令行中使用--target ES6。

数组.来自演示:

const onInputChanged = (e) => {
  const files =  e.currentTarget.files;
  
  Array.from(files).forEach(file => console.log("Do something with " + file.name));
}
<input 
    type="file"
    onChange="onInputChanged(event)"
/>

调用每个演示:

const onInputChanged = (e) => {
  const files =  e.currentTarget.files;
  
  [].forEach.call(files, file => console.log("Do something with " + file.name));
}
<input 
    type="file"
    onChange="onInputChanged(event)"
/>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

FileList、React、Typescript 的迭代 的相关文章

  • React-Router v5 History.push 不触发组件

    很抱歉朋友们又问这个问题了 我找到了解决这个问题的几个方法 但他们让我很困惑 我只是想问一个优雅的方法来做到这一点 正如你通过标题所理解的 我有一个关于反应路由的问题 让我解释 我有一个按钮 其名称是Login 单击按钮后 我执行了一些逻辑
  • 使用 ngx-translate 时更改 URL

    当有人使用 ngx translate 单击所选语言时 我尝试更改 URL 我想我应该通过订阅语言更改事件然后修改当前的 url 以反映所选的语言来做到这一点 因为我是新手 所以我不确定是否需要服务来做到这一点 或者可能是另一种解决方法 我
  • 具有客户端/服务器节点设置的 Webpack?

    我正在尝试为带有节点后端服务器的 Angular2 应用程序设置基于 webpack 的流程 经过几个小时的努力 我已经成功地让客户端愉快地构建了 但我现在不知道如何集成我的服务器构建 我的服务器使用生成器 因此必须以 ES6 为目标 并且
  • Jasmine:期望在异步函数中抛出错误

    我的 angular2 应用程序中有一个异步函数 我想为其编写单元测试 想象一下我的功能是这样的 myFunc a int Promise
  • TypeScript 类型别名循环引用自身

    使用 Typescript 3 6 3 我收到错误 Type alias JSONValue circularly references itself 我想知道如何删除这个特定版本的 TS 中的循环引用 因为更新版本中的相同代码按预期工作
  • 如何使用 forkjoin 返回 Angular 中两个独立 API 调用的组合响应

    我有两个独立的 api 调用 下面是两个api调用的代码 public getLendingType partyId string Observable lt lendingType string partyId string gt ret
  • 无法处理未捕获的类型错误:无法读取 createRouterReducer 处未定义的属性“位置”

    我在将路由器连接到 rootReducer 时遇到问题 控制台日志 未捕获的类型错误 无法读取未定义的属性 位置 在 createRouterReducer reducer js 005c 9 不知道如何修复它并将路由器连接到减速器 app
  • 如何强制 tsc 忽略 node_modules 文件夹?

    我正在使用 tsc 构建任务 不幸的是 我总是从节点模块文件夹中收到相同的错误 Executing task node modules bin tsc cmd watch p tsconfig json lt node modules ty
  • React Native Expo StackNavigator 重叠通知栏

    我正在尝试为我的 React Native Expo 应用程序实现导航栏 这里有一个问题 dependencies expo 18 0 3 react 16 0 0 alpha 12 react native 0 45 1 react na
  • 使用 nockjs 和 jest 进行 Promise/异步单元测试的代码覆盖率问题

    我使用 NockJS 和 Jest 为 React 应用程序编写了一个简单的 API 调用单元测试 如下所示 AjaxService js export const AjaxService post url data headers gt
  • ‘state’未定义 no-undef

    我使用教程来学习 React 但我很快就陷入困境 在教程中 他们使用以下代码 import React Component from react class Counter extends Component state count 0 r
  • Typescript 中的 Angular 服务具有依赖注入和缩小功能

    我现在正在努力让我的头脑围绕 Angularjs 我目前正在寻找服务 我也使用打字稿来编写代码 现在 从网络上的示例中 我看到人们在打字稿中使用如下所示的服务 class Service constructor private http n
  • 深层嵌套 Flexbox 布局是否会导致性能问题?

    我一直在开发一个 ReactJS 项目 其中我使用 Flexbox 布局创建了大部分组件 由于使用 React 我们可以拥有深度嵌套的组件 因此我的布局具有嵌套的 Flexbox 布局 现在我的问题是 这对性能有任何问题吗 在一个页面上 有
  • Angular 4:在订阅中收到错误消息

    在服务中 有这样的代码 getUser id return this http get http id map res gt res json 在组件中 this myService getUser this id subscribe cu
  • Ionic 2 beta 11:初始化日期时间组件以考虑本地时区

    我遇到了问题datetimeIonic 2 beta 11 中的组件 根据我在离子 API 文档 http ionicframework com docs v2 api components datetime DateTime 我应该从 D
  • 是否应该使用箭头函数创建类方法

    在创建 React 组件时 我有时会在网络上使用箭头函数语法创建方法 有时则不使用箭头函数语法 例如 class Component extends someFnk param gt vs class Component extends s
  • React中ComponentDidMount生命周期方法被调用两次

    在我的 React 应用程序中 加载应用程序时会进行两次初始 API 调用 我查看了 Chrome gt inpsect 中的网络选项卡 启动器 调用堆栈显示第一个调用是从VM123000 bundle js而第二个调用只是从实际的bund
  • Angular:扩展服务和传递参数

    我很难理解如何在 Angular 中扩展服务 我有一个连接到 Firebase 并执行各种常见任务 获取 设置 更新 列表等 的服务 我没有为我的特殊组件重写它 而是尝试扩展它 我的想法是我可以只传递路径的新部分 但这会引发错误 Canno
  • 指定枚举类型

    有枚举 enum Foo Bar should cause type error Baz Baz 可以为其指定类型以使其成为仅字符串枚举吗 如果您愿意 您可以执行以下操作 创建一个函数 要求其输入只有string 有价值的属性 const
  • TypeScript 接口函数属性:有什么区别?

    有人可以解释一下 为什么在这段代码中 对 Interface 类型常量的赋值有效 但对 Interface 类型常量的赋值会抛出错误 interface InterfaceA doSomething data object boolean

随机推荐

  • ASP.NET Core:如何获取远程IP地址?

    我尝试获取远程 客户端 IP 地址 var ip httpContext Features Get
  • React JS React-router-dom 导航不工作

    我尝试在登录我的 React 应用程序后重定向用户 但导航不起作用 我不知道为什么 这是我的代码 感谢您的帮助 import React Component from react import Route Navigate from rea
  • 响应式 D3 图表

    我有这张 D3 图表 几乎是开箱即用的 有没有办法让它响应并使用宽度和高度变量 innerRadius 和outerRadius 的百分比 我正在开发一个响应式网站 需要根据屏幕尺寸 浏览器尺寸进行更改 jsfiddle在这里 http j
  • 编辑Android XML文件时如何避免XServer上的Eclipse泄漏?

    当我在 Eclipse 中编辑 XML 文件 主要是 Android 布局等 时 它会导致 XServer 上的泄漏 并最终耗尽我的所有 RAM 4GB 因此我必须按 Ctrl Alt Backspace 才能继续 你知道有什么补救办法吗
  • SQL Server 2005 和临时表范围

    我已经阅读了临时表和范围的主题 我看到的所有答案似乎都没有谈到我的担忧之一 据我所知 本地临时表的范围仅在存储过程或子存储过程的生命周期内有效 然而并发方面的情况如何 即 如果我有一个存储过程创建一个临时表 该临时表是从两个不同的进程但从同
  • 如何在 Django 运行时回退到多种语言?

    我正在构建一个 Django 应用程序 它使用 Django 的翻译功能来提供多种语言的本地化 不过我也是用Django的翻译功能来翻译的某些术语进入不同的行业基于当前登录用户的设置 例如 对于在学习评估行业工作的英语用户 我想要以下行为
  • tableView reloadData 上未调用 cellForRowAtIndexPath

    我在一个视图上有一个 UITableView 它在应用程序启动时加载数据 然后当用户在框中输入文本并点击按钮时 我重新查询数据库 重新填充存储数据的原始 NSMutableArray表的数据 所有这些都运行良好 在一些日志语句中 我可以看出
  • 组的行级安全性或使行可供组访问

    我希望表中的行只能由组成员访问 我通过以下方法创建用户并将其添加到组中 CREATE USER abc LOGIN PASSWORD securedpassword1 CREATE USER xyz LOGIN PASSWORD secur
  • 在节点之间绘制连接而不重叠节点的算法

    我在图中有一系列节点 节点由用户放置在特定位置 保证节点不重叠 并且事实上 它们之间有一个空间缓冲区 这些节点相互连接 并且每条边在特定点处连接到节点 我需要绘制节点之间的边缘 以便边缘 必填 不要与父节点重叠 理想情况下 不会重叠任何节点
  • 关于 iPhone 应用程序下载计数

    我怎样才能知道我的 iphone 应用程序在 itunesconnect 中的下载计数 为此 您必须登录 iTunesConnect apple com 网站 然后转到 销售和趋势 模块 在这里 您可以查看已下载的应用程序数量
  • 如何在新选项卡或窗口中打开 PDF 文件而不是使用 C# 和 ASP.NET MVC 下载它?

    我有发票屏幕 在这个屏幕上有可用的订单数量 所以当我们创建发票时 我们需要填写一张表格 所以我想要的解决方案是当我提交此发票表格或单击此提交按钮时 pdf 应该在新窗口中打开标签 我想向您澄清 我们不会将此 pdf 保存在任何地方 div
  • Bootstrap Carousel 在 Safari 网络浏览器和 iPad/iPhone 上无法滑动

    在其他浏览器上是滑动的 但在Safari中它会改变图像但不会滑动 我尝试了这段代码以及transition js document ready function Carousel carousel interval 1000 data sl
  • 给定出生日期如何计算下一个生日?

    鉴于 Postgres 数据库中的此架构 CREATE TABLE person id serial PRIMARY KEY name text birth date date 我如何查询表来获取每个人的日期next今天之后过生日吗 例如
  • 使用 Webpack 2 延迟加载 Vue 组件

    我想尝试延迟加载 with webpack 我按路线分割我的应用程序 每个路线都有所需的组件 const Home resolve gt require ensure components Home Home vue gt resolve
  • 不允许从闪亮输出对象读取对象

    我正在使用以下 R 平台和版本 平台 x86 64 apple darwin10 8 0version string R 版本 3 0 3 2014 03 06 我是闪亮的新手 我正在尝试使用 rWBclimate 数据集 这是 R 中的一
  • Environment.getExternalStorageDirectory().getAbsolutePath() 不起作用并提供 /storage

    My code myDb openOrCreateDatabase sdcard FashionGirl ImagesDB db Context MODE PRIVATE null myDb openOrCreateDatabase dbP
  • android startActivityForResult 正在终止父活动中的线程

    我有一个活动 其中有一个线程和一个视图 它们与 LunarLander 非常相似 为了显示游戏内菜单 我为另一个活动调用 startActivityForResult 该活动上有许多按钮 然后将按下的按钮类型返回到父活动 这很好 除非当我在
  • 将数据从 React 发送到 MySQL

    我正在创建一个发布应用程序 需要使用 React 和 MySQL 数据库之间的通信来来回发送信息 使用 Express 作为我的 JS 服务器 服务器代码如下所示 const express require express const bo
  • 如何在滚动窗格上放置多个标签以及为什么该标签放置在中心?

    我正在尝试做一个feed box显示从服务器到客户端的所有更新 Jframe我放置了一个JScrollPane 以便客户端可以轻松看到更多数量的提要 超过JScrollPane 我试图放置一个JLabel然后它看起来像这样 标签被放置在中心
  • FileList、React、Typescript 的迭代

    我正在 重新调整 文件输入 但无法迭代选定的文件 private onInputChanged e React FormEvent