【发布时间】:2018-04-26 09:02:49
【问题描述】:
我在函数中有字符串作为参数,它会返回一个相同命名的组件,例如
myFunc('Home') or myFunc('MyComponent')
应该返回
<Home /> or <MyComponent />
我知道我能做到
var mappings = {
Home: <Home />,
MyComponent: <MyComponent />
};
return mappings['Home']; // returns <Home />
or
return mappings['MyComponent'] // returns <MyComponent />
但是我可以直接返回与参数同名的组件而不创建上面的对象映射吗?
【问题讨论】:
-
这里有一个 React 16 答案:stackoverflow.com/questions/43800784/… - 如果你缩小它似乎不起作用(就像你在生产中所做的那样)。我认为有一个映射可能更安全。稍微冗长一点,但是尝试简化这样的事情所花费的时间通常比节省的精力更多,并且进行显式映射可以防止奇怪的、难以追踪的错误(例如前面提到的在您丑化或缩小代码时失败)。跨度>
标签: javascript reactjs