假设我们有一个像这样声明的模块。
import Stuff from "./stuff";
export default {
things: { a: 1 },
stuff: Stuff
}
然后我们获取另一个模块并使用如下所示。
import Donkey from "./stuff-and-things"
console.log(Donkey.things.a);
console.log(Donkey.stuff.whatever-field);
我希望能够对前者导入后者做出反应,这样当 Donkey 将被创建(添加,合并,注入任何它被称为)时,一个函数将火。
像这样的伪代码。
import Stuff from "./stuff";
export default {
constructor: function(){ console.log("I'm alive!"); }
things: { a: 1 },
stuff: Stuff
}
有可能吗?我现在已经googlearching了一段时间,我一无所获 - 没有关于如何否定它的建议。可能,由于对主题的无知,我一直在使用错误的术语。
答案 0 :(得分:2)
导入模块时无法通知。我猜你能做的是导出一个函数。然后,为了对该模块做任何有用的事情,必须首先调用该函数。
例如:
// stuff-and-things
import Stuff from "./stuff";
const api = {
things: { a: 1 },
stuff: Stuff
};
export default function() {
console.log("I'm alive!");
return api;
};
// other
import stuffAndThings from "./stuff-and-things"
const Donkey = stuffAndThings();
console.log(Donkey.things.a);
console.log(Donkey.stuff.whateverField);