【问题标题】:String to React component [duplicate]字符串到 React 组件 [重复]
【发布时间】: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


【解决方案1】:

你不可能做这样的事情:

function myFunc(componentName) {
    return < <componentName> />;
}

虽然这不是一个坏观察,但这只是为了尽可能减少代码而进行挖掘,并没有太多好处,只是为了找出语言是否可以做到这一点。

【讨论】:

    猜你喜欢
    • 2013-08-04
    • 2018-05-01
    • 2011-12-14
    • 2019-04-21
    • 1970-01-01
    • 2018-06-16
    • 2013-09-15
    • 2012-12-15
    • 1970-01-01
    相关资源
    最近更新 更多