如何通过字符串名称呈现组件

how to render a component by string name

我似乎无法使用名称字符串呈现组件。我希望能够动态生成具有可以呈现的现有对应组件的组件名称字符串。

array const 将通过 JSON 数据填充,这就是为什么我需要使用 string 值来识别组件。

这是我正在尝试做的事情:

import Module1 from './module1';
import Module2 from './module2';
import Module3 from './module3';

const array = ['Module1', 'Module2', 'Module3'];

{array.map((Module, index) =>
 <Module />
)}

React 不是引用现有组件并渲染它,而是渲染一个全小写的自定义元素标签。

注意:这些组件 ['Module1', 'Module2', 'Module3'] 创建为 extends Component

您可以将组件放在一个对象中,然后使用字符串作为键来访问它们。

import Module1 from './module1';
import Module2 from './module2';
import Module3 from './module3';

const array = ['Module1', 'Module2', 'Module3'];

const modules = {
  Module1,
  Module2,
  Module3,
};

{moduleOrderArr.map((key, index) => {
  const Module = modules[key];
  return <Module />;
})}