如何在此自定义方法调用中检测它是同一文件



我学JavaScript React。

我有这样的状态:

state = { files: [] };

当我用相同的prop调用这个方法两次时test总是为真而在第二次调用时它应该是假的

someMethod() {
const { newFile } = this.props;
const { files } = this.state;
let test = files.every((file) => newFile.size !== file.size);
if (test) {
const newList = files.concat({ newFile });
this.setState({
files: newList,
});
}
}

在上面的代码中newFile看起来像这样;

{
source: "react:Dashboard",
id: "uppy-/object/object/1612029328210-2r-10-2t-image/jpeg-42985-1612029045180",
name: "[object Object]1612029328210",
extension: "",
meta: {
relativePath: null,
name: "[object Object]1612029328210",
type: "image/jpeg",
},
type: "image/jpeg",
data: {
},
progress: {
percentage: 0,
bytesUploaded: 0,
bytesTotal: 42985,
uploadComplete: false,
uploadStarted: null,
},
size: 42985,
isRemote: false,
remote: "",
preview: undefined,
}

我怎么能检测到它是相同的newFile,所以不添加它?

为什么是files.concat({ newFile })?我认为你的意思是直接做files.concat(newFile),而不是创建一个包含文件本身的newFile字段的对象。

最新更新