interface IVideos {
lastModified: number,
name: string,
path: string,
size: number,
type: string,
webkitRelativePath: string
}
const [videos, setVideos] = useState<IVideos[] | null>([]);
<input type="file" onChange={(event) => setVideos(event.target.files)} />
我在";setVideos((":
Type 'FileList' is not assignable to type 'SetStateAction<IVideos[] | null>'.
我的界面不正确吗?
是否需要创建IVideos接口?CCD_ 12和CCD_。
例如,这里有一个对我有效的替代方案:
const [videos, setVideos] = useState<File[]>([]);
<input type="file" onChange={(event) => setVideos(Array.from(event.target.files ?? []))} />
我所做的更改:
- 将
IVideos[]
更改为File[]
,因为它已经预定义好了,现在不必维护这个接口 - 删除了
| null
,这样您就知道它始终是一个数组 - 使用
Array.from(event.target.files
将FileList强制转换为数组 - 使用
event.target.files ?? []
是因为Array.from不能接受null
,所以如果event.target.files返回null,我们只需将其替换为空数组
这有帮助吗?还是需要使用IVideos接口?