Javascript 什么';为输入类型文件键入onChange处理程序的正确方法是什么?
差不多 为输入类型文件键入onChange处理程序的正确方法是什么Javascript 什么';为输入类型文件键入onChange处理程序的正确方法是什么?,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,差不多 为输入类型文件键入onChange处理程序的正确方法是什么 <input id="myInput" type="file" ref={inputEl} onChange={onChangeFile} /> /// const onChangeFile = (event: React.ChangeEvent<HTMLInputElement>) =&
<input
id="myInput"
type="file"
ref={inputEl}
onChange={onChangeFile}
/>
///
const onChangeFile = (event: React.ChangeEvent<HTMLInputElement>) => {
event.stopPropagation();
event.preventDefault();
const files = Array.from(event.target.files);
const arr = files.filter((file: any) => imageTypesRegExp.test(file.type));
};
对于事件.target.files
和
Object is of type 'unknown'.
对于
文件.type
免责声明:我不熟悉React/ReactJS,所以我只使用
- 您需要将
(或event.target
)强制转换为event.currentTarget
HTMLInputElement
- 这是因为
接口不是通用的(因此不能指定)事件
const onChangeFile = (event: React.ChangeEvent<HTMLInputElement>) => {
event.stopPropagation();
event.preventDefault();
const input = event.target as HTMLInputElement; // <-- here
const files = Array.from(input.files);
const arr = files.filter((file: any) => imageTypesRegExp.test(file.type));
};
const onChangeFile=(事件:React.changevent)=>{
event.stopPropagation();
event.preventDefault();
const input=event.target作为HTMLInputElement;//imageTypesRegExp.test(file.type));
};
另外,如果要按MIME类型或文件扩展名筛选文件,则根本不需要此事件处理程序,如下所示:
- 仅JPEG和PNG图像:
<input type="file" accept="image/jpeg, image/png" />
- 任何图像:
<input type="file" accept="image/*" />
- 仅视频:
<input type="file" accept="video/*" />
addEventListener
,或者它使用的是老式的HTML3时代onChange=“”
)样式的事件属性?React有自己的事件系统,我不确定其内部结构。
<input type="file" accept="video/*" />