我学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
字段的对象。