我在一个单独的文件中有几个reactjs组件(让它成为一个窗口),例如:
windows/window1.jsx
windows/window2.jsx
...
windows/windowN.jsx
我还有一个名为“WindowManager”的组件,我想用它来快速调用代码中的任何窗口。
现在我应该将所有可能的窗口存储在WindowManager.jsx中,如下所示:
var windowsTypes = {
window1 : require('windows/window1.jsx'),
window2 : require('windows/window1.jsx'),
...
windowN : require('windows/windowN.jsx')
}
...然后将其称为:
WindowManager.addWindow(windowTypes.windowN, { ... custom windowN-related props ...});
如果我要添加一个新窗口类型,那么我还应该添加一个新项目“windowN”:require(...)到“windowsTypes”列表中,在我看来并不是非常干的解决方案。我想要实现的是摆脱“windowsTypes”的必要性。
有没有干净的方法呢?可能在其他插件和库的帮助下?
答案 0 :(得分:0)
为什么不简单地使用这样的方法:
function addWindowExt(windowName, windowProps) // where windowName is string
{
WindowManager.addWindow(require('windows/' + windowName + '.jsx'), windowProps);
}
无需任何预填充地图。