如何在反应中将自定义属性插入文件对象
How to insert custom properties to File object in react
我正在开发文件上传功能,当我 select 多个文件或单个文件时我想实现的目标 我想为每个 File
对象自定义 属性 分配自定义 属性 必须类似于 File 对象的 percentage:0
。我努力尝试但没有找到任何合适的解决方案来解决这个问题。有人可以帮我解决这个问题吗?
谢谢
代码
addManualAttachments = (event) => {
let files = event.target.files
const fileList = Array.from(files)
if (fileList.length > 10) {
Swal.fire('Warning !', 'Maximum files upload limit is 10', 'warning')
return false
}
for (let i = 0; i < fileList.length; i++) {
if (this.validateFile(fileList[i])) {
this.setState((prevState) => {
return {
...prevState,
selectedFiles: this.uniqueFiles([...prevState.selectedFiles, fileList[i]]),
}
})
}
}
}
如果它是一个普通的 Javascript 对象,您可以在遍历文件时向文件添加新的 属性 权限。此外,您可以使用 forEach 循环而不需要 for 循环:
addManualAttachments = (event) => {
const files = Array.from(event.target.files);
if (files.length > 10) {
Swal.fire('Warning !', 'Maximum files upload limit is 10', 'warning')
return false
}
files.forEach((file) => {
if(this.validateFile(file)) {
file.percentage = 0; // <-- This will add the new property to the object reference stored for that file object.
this.setState((prevState) => {
return {
...prevState,
selectedFiles: this.uniqueFiles([...prevState.selectedFiles, file]),
}
});
}
});
}
我正在开发文件上传功能,当我 select 多个文件或单个文件时我想实现的目标 我想为每个 File
对象自定义 属性 分配自定义 属性 必须类似于 File 对象的 percentage:0
。我努力尝试但没有找到任何合适的解决方案来解决这个问题。有人可以帮我解决这个问题吗?
谢谢
代码
addManualAttachments = (event) => {
let files = event.target.files
const fileList = Array.from(files)
if (fileList.length > 10) {
Swal.fire('Warning !', 'Maximum files upload limit is 10', 'warning')
return false
}
for (let i = 0; i < fileList.length; i++) {
if (this.validateFile(fileList[i])) {
this.setState((prevState) => {
return {
...prevState,
selectedFiles: this.uniqueFiles([...prevState.selectedFiles, fileList[i]]),
}
})
}
}
}
如果它是一个普通的 Javascript 对象,您可以在遍历文件时向文件添加新的 属性 权限。此外,您可以使用 forEach 循环而不需要 for 循环:
addManualAttachments = (event) => {
const files = Array.from(event.target.files);
if (files.length > 10) {
Swal.fire('Warning !', 'Maximum files upload limit is 10', 'warning')
return false
}
files.forEach((file) => {
if(this.validateFile(file)) {
file.percentage = 0; // <-- This will add the new property to the object reference stored for that file object.
this.setState((prevState) => {
return {
...prevState,
selectedFiles: this.uniqueFiles([...prevState.selectedFiles, file]),
}
});
}
});
}