首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用.map in .map()导入组件

使用.map in .map()导入组件
EN

Stack Overflow用户
提问于 2019-11-19 00:17:28
回答 3查看 476关注 0票数 1

有人能告诉我如何使用.map导入一组组件吗?就像这样..。

代码语言:javascript
复制
import Welcome from 'Welcome.jsx';
import Services from 'Services.jsx';

const Index = props => {
  const myComponents = ['Welcome', 'Services'];

  return (
    <div>
      {myComponents.map((componentName, index) => (
        <div key={index}> />
          <{componentName} />
        </div>
      ))}
    </div>
  );
};```
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-11-19 00:23:54

别用他们的名字。在数组中使用组件(函数值)本身:

代码语言:javascript
复制
import Welcome from 'Welcome.jsx';
import Services from 'Services.jsx';

const Index = props => {
  const myComponents = [Welcome, Services];

  return (
    <div>
      {myComponents.map((AnyComponent, index) => (
        <div key={index}> />
          <AnyComponent />
        </div>
      ))}
    </div>
  );
};
票数 2
EN

Stack Overflow用户

发布于 2019-11-19 00:26:14

你可以试试@Bergi解决方案。但是,您也可以使用require导入和生成组件。

代码语言:javascript
复制
const myComponents = ['Welcome', 'Services'].map((name) => require(`${name}.jsx`).default);

const Index = props => {
   return (
      <div>
         {myComponents.map((component, index) => {
            const Component = component;

            return (
               <div key={index}>
                  <Component />
               </div>
            );
         })}
     </div>
  );
};
票数 0
EN

Stack Overflow用户

发布于 2019-11-19 00:30:09

通过延迟加载组件,您可以更进一步:

代码语言:javascript
复制
const OtherComponent = React.lazy(() => import('./OtherComponent'));
const AnotherComponent = React.lazy(() => import('./AnotherComponent'));

const MyComponent () => {
  return (
    <div>
      <Suspense fallback={<div>Loading...</div>}>
        <section>
          <OtherComponent />
          <AnotherComponent />
        </section>
      </Suspense>
    </div>
  );
}

更多信息:https://reactjs.org/docs/code-splitting.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58924851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档