如何按字符串名称呈现组件

Lou*_*uis 4 arrays string components reactjs react-fiber

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

array常量会通过JSON数据来填充,这就是为什么我需要使用string值识别组件.

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

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

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

{array.map((Module, index) =>
 <Module />
)}
Run Code Online (Sandbox Code Playgroud)

React不是引用现有组件并呈现它,而是呈现全部小写的自定义元素标记.

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

Max*_*Max 6

您可以将组件放在对象中,并使用字符串作为键来访问它们.

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 />;
})}
Run Code Online (Sandbox Code Playgroud)