javascript - 如何使用从索引文件导入的命名空间动态调用模块?

标签 javascript reactjs typescript

我正在尝试将前端设置为一个应用程序,该应用程序可根据客户需要动态调用组件。所以我们有一个索引文件,其中包含三个正在导入的组件 ComponentOne ComponentTwo ComponentThree

我是这样导入的,import * as components from '../components'

然后在我的 render 方法中,我有一个名为 componentString 的 Prop (从父组件传递),它主要用于检查该组件是否应该存在于网站的这个用户版本上。

例如,此组件字符串将为“ComponentOne”。我有一个包装器,用于检查特定组件是否存在于用户的后端,然后应该调用并呈现该组件。

我的问题是如何使用这个字符串来调用组件。

我试过类似 <components[componentString] /> 的东西或 <components.componentString />{component[componentString]}最后 {components.componentString]} .都不起作用,基本上我只是希望结果等于 <ComponentOne />但调用类似 <componentString /> 的东西也不行。

最佳答案

摘自官方react docs我会说你需要像下面这样写。基本上,您需要在尝试呈现它之前将其添加为 CapitalizedComponent

import React from 'react';
import { PhotoStory, VideoStory } from './stories';

const components = {
  photo: PhotoStory,
  video: VideoStory
};

function Story(props) {
  // Correct! JSX type can be a capitalized variable.
  const SpecificStory = components[props.storyType];
  return <SpecificStory story={props.story} />;
}

关于javascript - 如何使用从索引文件导入的命名空间动态调用模块?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56757945/

相关文章:

javascript - 如何将 javascript 数组与 html 文件连接起来?

javascript - jquery-steps "Next"和 "Previous"按钮上的图标

javascript - 简单的 React 组件无法渲染

javascript - 无法在静态函数ReactJs中调用函数

typescript - 您如何发出返回 json 数组的 http get 请求,该数组将用于填充 ngfor 指令?

javascript - 在 Node.js 中查找 GPU 信息(模型)

javascript - 定义多维数组

angular - 我什么时候可以检查是否已给出 '@Input()'?

javascript - 如何通过在该上下文类中的方法中创建的 onClick 函数传递 React 上下文的状态?

typescript - PrimeNG 下拉选择项数据绑定(bind)