Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Redux reducer中扩展或克隆文件Web API对象以支持其他属性_Javascript_Reactjs_Ecmascript 6_Redux_Fileapi - Fatal编程技术网

Javascript 在Redux reducer中扩展或克隆文件Web API对象以支持其他属性

Javascript 在Redux reducer中扩展或克隆文件Web API对象以支持其他属性,javascript,reactjs,ecmascript-6,redux,fileapi,Javascript,Reactjs,Ecmascript 6,Redux,Fileapi,我正试图保留一组用户选择上载的文件。每个文件都是一个对象。我想向它添加其他属性,如“进度”和“状态”,以便在用户开始上传过程时,我可以向用户显示这些数据 我遇到的问题是,当我尝试使用object.assign()或JSON.parse(JSON.stringify(obj))方法“复制”文件对象时,我只会返回我自己设置的属性,而不是对象固有的值 这是我尝试使用Object.assign()的一个示例: 可以理解,这给我带来了各种各样的问题 跟踪文件并以适当的方式扩展其属性的好方法是什么 多亏了所

我正试图保留一组用户选择上载的文件。每个文件都是一个对象。我想向它添加其他属性,如“进度”和“状态”,以便在用户开始上传过程时,我可以向用户显示这些数据

我遇到的问题是,当我尝试使用
object.assign()
JSON.parse(JSON.stringify(obj))
方法“复制”文件对象时,我只会返回我自己设置的属性,而不是对象固有的值

这是我尝试使用
Object.assign()
的一个示例:

可以理解,这给我带来了各种各样的问题

跟踪文件并以适当的方式扩展其属性的好方法是什么


多亏了所有这些。

只是不要试图在
文件
对象上存储额外的属性。而是将它们作为同级存储在父对象上:

// INIT case
return {
    ...state,
    files: [
        ...state.files,
        { fileObject, status: "INITIAL" }
    ]
};

// UPDATE case
return {
    ...state,
    files: [
        ...state.files.slice(0, payload.index),
        { ...state.files[payload.index], status: "UPLOADING", progress: 0 },
        ...state.files.slize(payload.index + 1)
    ]
};
在该计划中:

// fileObject is the File
const { fileObject, status, progress } = state.files[2];

谢谢我猜只是有一天…:s
// fileObject is the File
const { fileObject, status, progress } = state.files[2];