![](/img/trans.png)
[英]Is it possible to import modules from all files in a directory, using a wildcard?
[英]Is it possible to import all classes from a directory and initialise them?
說這是我的目錄樹的樣子:
/
Children/
ChildrenIndex.js
Base.js
ChildA.js
ChildB.js
ChildC.js
...
ChildN.js
Main.js
任何給定的ChildX.js
看起來像這樣,
import Base from './Base.js';
class ChildX extends Base {
constructor(params) {
this.params = params
}
}
export default ChildX
ChildrenIndex.js
看起來像這樣,
export {default as ChildA} from './ChildA.js';
export {default as ChildB} from './ChildB.js';
export {default as ChildC} from './ChildC.js';
...
export {default as ChildN} from './ChildN.js';
是否有可能我可以在Main.js
導入Base.js
所有子Main.js
並獲得一個充滿實例的列表,每個子項的初始化? 這是我想要的偽代碼:
import { * } from './Children/ChildrenIndex.js'
class Main {
constructor() {
let childConstructors = getAllConstructorsIn('./Children/ChildrenIndex.js');
let children = [];
for (let constrt of childConstructors) {
children.push(new constrt(params));
}
}
}
我可以使用import { ChildA, ChildB, ChildC, ... ,ChildN } from './Children/ChildrenIndex.js'
手動執行此操作,然后像這樣填寫列表: [new ChildA(params), new ChildB(params), new ChildC(params), ... , new ChildN(params)]
。 而且,這很好用。 但是,我希望有人能夠將Base.js
的實現放在 children 目錄中以添加新功能,而不必擔心然后在代碼的其他部分編寫導入語句和初始化。 如果相關,我正在 React 應用程序的模型中執行此操作。
這應該在Main.js
工作:
import * as Children from "./Children/ChildrenIndex";
Children.ChildA // ChildA component
Children.ChildB // ChildB component
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.