如何从包含类名称的字符串中获取React组件类?

时间:2019-04-21 04:56:55

标签: javascript reactjs class ecmascript-6

注意:此问题不是React / JSX Dynamic Component Name的重复。我已经知道可接受的答案中使用的解决方案,如果您在下面阅读我的问题,我已经在使用类似的解决方案(使用映射将字符串转换为组件类)。我的问题是我是否可以避免维护此类映射并将字符串直接转换为组件类。

这是我在index.js中的代码:

import React from 'react'
import ReactDOM from 'react-dom'

class Foo extends React.Component {
  render() {
    return <h1>Foo</h1>
  }
}

class Bar extends React.Component {
  render() {
    return <h1>Bar</h1>
  }
}

function renderComponent(Component) {
  ReactDOM.render(<Component />, document.getElementById('root'))
}

function getComponent(name) {
  let map = {
    'Foo': Foo,
    'Bar': Bar,
  }
  return map[name]
}

renderComponent(getComponent('Foo'))

getComponent()函数将React组件类名称作为字符串输入并返回相应的类吗?

当前,我有一个对象文字将每个类名映射到一个类?每次添加新类时,都必须更新该对象文字。有什么方法可以避免维护此对象文字吗?

是否有一种写getComponent()的方式,它可以将类名作为字符串输入直接转换为类?

0 个答案:

没有答案