【发布时间】:2017-04-03 04:46:16
【问题描述】:
我已经使用解构语法{ ...variable } 有一段时间了,但直到今天我才真正遇到过它,而我的大多数用例仍然按预期工作,这有点令人困惑我。
我有一个生成对象并将其导出的 JS 文件,例如:
var exports = {}
...
export default exports;
没有任何嵌套对象,文件末尾是一个简单的 KVP。
当试图从这个文件导入时,我试图通过解构得到的任何对象都是未定义的。例如:
import { Foo, Bar } from './my-object';
Foo.bar(); // Cannot read property bar of undefined
但是,如果我像这样进一步分解它,一切都很好:
import MyObject from './my-object';
const { Foo, Bar } = MyObject;
Foo.bar(); // Works!
我尝试将 exports 更改为我想的不同的变量名,只是可能与 module.exports 冲突,但这不是问题。
过去每当我导出一个对象时都很简单:
export default { ... }
我真的很困惑这次可能是什么问题,因为console.log(exports) 的结果是一样的:
{ Foo: foo, Bar: bar }
其中bar()是foo的函数变量
我还应该补充一点,试图破解它以获得正确的结果也不起作用,例如:
export default {
Foo: { bar: () => {} },
Bar: { foo: () => {} }
};
仍然抛出相同的Cannot read property __ of undefined
【问题讨论】: