Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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中获取文件对象的所有属性?_Javascript_Reactjs_File - Fatal编程技术网

如何在javascript中获取文件对象的所有属性?

如何在javascript中获取文件对象的所有属性?,javascript,reactjs,file,Javascript,Reactjs,File,我在使用时获取文件对象的值,但在访问e.target.files[0]时,我无法将其与spread运算符或对象.assign一起使用 我想用文件的所有属性保存状态,并向其中添加更多数据,但它不起作用,它给了我一个空对象 为什么不传播文件属性?来自MDN文档: 该方法将所有可枚举自身属性从一个或多个源对象复制到目标对象。它返回目标对象 我猜您指的是文件对象的继承属性。如果是这种情况,Object.assign方法将不考虑它们。扩展运算符也是如此 解决方案是使用lodash库和assignIn()

我在使用
时获取文件对象的值,但在访问
e.target.files[0]
时,我无法将其与spread运算符或
对象.assign一起使用

我想用文件的所有属性保存状态,并向其中添加更多数据,但它不起作用,它给了我一个空对象

为什么不传播文件属性?

来自MDN文档:

该方法将所有可枚举自身属性从一个或多个源对象复制到目标对象。它返回目标对象

我猜您指的是文件对象的继承属性。如果是这种情况,Object.assign方法将不考虑它们。扩展运算符也是如此

解决方案是使用lodash库和assignIn()方法,该方法适用于自己的和继承的对象属性。

来自MDN文档:

该方法将所有可枚举自身属性从一个或多个源对象复制到目标对象。它返回目标对象

我猜您指的是文件对象的继承属性。如果是这种情况,Object.assign方法将不考虑它们。扩展运算符也是如此


解决方案是使用lodash库和assignIn()方法,该方法适用于自己的和继承的对象属性。

@HereticMonkey这个问题也是为了更好地理解文件对象发生了什么以及为什么它会这样,它不仅仅是为了使代码更干净。你知道为什么它不传播这些属性吗?我不知道,我想知道为什么。@HereticMonkey这个问题也是为了更好地理解File对象发生了什么以及它为什么会这样做,它不仅仅是为了让代码更干净。你知道为什么它不传播这些属性吗?我不知道,我想知道为什么。
const onChange = e => {
    const file = e.target.files[0];
    console.log(file); // Logs File Object
    console.log({ ...file }); // Logs empty Object
    console.log(Object.assign({}, file)); // Logs empty Object
    setFile({ ...file, extraData: "hey" }); // Sets Object only with `extraData`
}