React:动态导入jsx

2024-04-12

这个问题与将 JSX 文件动态导入 React 相关。

基本上,我们有一个主要组件,它根据数据库中存储的结构动态呈现其他组件。动态组件存储在子目录“./Components”中。我们静态地将 this 定义为:

import CompA  from './Components/CompA';
import CompB  from './Components/CompB';

var components = {
 'CompA': CompA,
 'CompB': CompB
}

我们使用以下方式渲染它们:

var type = 'CompA' 
var Component = components[type];
...
<Component />

虽然这工作得很好,但对我们来说有点太静态了。我们有 100 多个组件 (CompA/CompB),静态定义它们是行不通的。

是否可以导入“./Compontents”中的所有 JSX 文件并填充组件数组?

而且,如果我们可以将“./Components”路径作为 props 发送到主要组件,那就真的(真的)很好了。主组件将使用此路径导入 .jsx 文件。像这样:

<MainComponent ComponentPath="./SystemComponents">

将使用“./SystemComponents”作为 .JSX 文件的路径并且:

<MainComponent ComponentPath="./UserComponents">

将使用“./UserComponents”作为导入路径。


拥有一个包含内容的 Components/index.js 怎么样:

export CompA from "./comp_a";
export CompB from "./comp_b";

然后你就可以:

import * as Components from "./components"

那么你可以使用:

<Components.CompA />
<Components.CompB />
...

希望这可以帮助。

我怀疑您在通过组件 props 发送路径时是否可以加载任何内容,然后文件的加载应该发生在 React 组件生命周期方法内,这不是我推荐的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React:动态导入jsx 的相关文章

  • 如何判断何时创建新组件?

    我一直在寻找背后的逻辑当有人在 AngularJS Angular 上的 Web 应用程序中创建新组件时但我认为这更通用 可能适用于所有基于组件的前端框架 我知道有像这样的一些原则应该是抽象的和可重用的但例如我在角度文档中看到 每个单独的路
  • 以编程方式更改 Redux-Form 字段值

    当我使用redux formv7 我发现没有办法设置字段值 现在在我的form 我有两个select成分 当第一个时 第二个的值就会很清楚select元件值改变 在类渲染中 div div site div div div div
  • 如何在 Gatsby 页面上包含本地 JavaScript?

    我是一个完全的 React 新手 我想这里有些基本的东西我不太明白 默认的 Gatsby 页面如下所示 有没有办法像这样使用本地 js 文件 我想要实现的是让反应忽略script js但仍然让客户端使用它 默认的 Gatsby 页面看起来像
  • ReactJS 子级 - 过滤掉空值

    我正在渲染我的组件
  • 如何删除 Material React Modal 中的蓝色边框?

    我正在用这个反应材料模态 https material ui com pt components modal 在演示示例中 您可以看到当您打开模式时 有一个蓝色边框 有办法去掉吗 我在 Modal Api 中看到具有该属性disableAu
  • 使用 Jest 和 React JS TestUtils 测试表单

    我有一个带有 3 个单选按钮的表单 如下所示 假名
  • Jwt 签名和前端登录身份验证

    我有这个特殊的 jwt sign 函数 Backend const token jwt sign id user id process env TOKEN SECRET expiresIn 1m res header auth token
  • 没有 Props 的 TypeScript React State

    我想利用 TypeScript 中的静态和强类型 但仅限于状态 因为我不打算采用任何道具 当我尝试传递接口时 最终出现错误 import as React from react import Link from react router d
  • 在react-big-calendar中单击事件时添加弹出窗口?

    当单击事件时 我无法将弹出窗口添加到事件中 弹出窗口似乎只显示在事件槽中 而不是显示在事件槽的顶部 此外 由于我为事件创建了一个自定义组件并尝试在自定义组件中实现弹出窗口 因此只有当我单击事件名称时才会显示弹出窗口 这是代码 class C
  • react-route,react-hot-loader.webpack(您无法更改 ;它将被忽略)

    这是我的第一个项目react react router react hot loader webpack dev server and webpack 当我更改react组件中的代码时 热加载器生效 但同时控制台告诉我一个警告 您无法更改
  • 有没有办法在 React.render() 函数中渲染多个 React 组件?

    例如我可以这样做 import React from react import PanelA from panelA jsx import PanelB from panelB jsx React render
  • 如何使用Create React App安装React

    嗨 我对反应真的很陌生 我不知道如何实际安装它 也不知道我需要做什么才能在其中编写代码 我下载了node js并且安装了v12 18 3以及NPM 6 14 6 但是每次我尝试在许多网站上提到的create react app安装方法中输入
  • 使用 React.forwardRef 与自定义 ref prop 的价值

    我看到React forwardRef从反应文档来看 似乎是将引用传递给子功能组件的认可方式 const FancyButton React forwardRef props ref gt
  • 如何使用draft.js更改光标位置?

    我想知道在键盘命令上完成文本插入后如何更改 Draft js 中的光标位置 因此我目前正在使用 handleKeyCommand cmd 每当用户按下特定按钮时插入自定义文本块 接下来我尝试了以下操作 currentState this s
  • 如何在React中的Material-UI选择框中设置默认值?

    我在用选择框 https material ui com demos selects 来自材料用户界面 我想显示默认选择的 选择值 选项 但之后用户无法选择此选项
  • 需要有关 React Js 的帮助

    我是 React Js 新手 我的代码无法正常工作 请看下面 这是我的脚本文件Main jsx 该文件由 React 编译 输出放置在 dist 文件夹下的 main js 文件中 var react require react react
  • 如何正确更新反应钩子状态内的数组

    我一直在尝试更新代表反应状态的数组内的对象 当输入的值更改时应该更新该对象 我可以自己找到一种方法来更新它 但我不太确定这是正确的方法 因为当我打开反应开发工具并转到组件选项卡并单击我正在处理的组件时 在输入输入时状态不会立即更新 并且为了
  • 将 Sweet Alert 弹出窗口添加到 React 组件中的按钮

    我为 Bootstrap 和 React 找到了这个完美的 Sweet Alert 模块 我在 Meteor 应用程序中使用它 http djorg83 github io react bootstrap sweetalert http d
  • 如何访问另一个 mobx 商店中的 mobx 商店?

    假设以下结构 stores RouterStore js UserStore js index js each of Store jsfiles 是一个 mobx 存储类 包含 observable and action index js只
  • React Native - 跨屏幕传递数据

    我遇到了一些麻烦react native应用程序 我不知道如何跨屏幕传递数据 我意识到还有其他类似的问题在 SO 上得到了回答 但是这些解决方案对我来说不起作用 我正在使用StackNavigator 这是我的设置App js file e

随机推荐

  • WooCommerce:购物车总计和小计有什么区别?

    我在文档中找不到任何解释 我也查看了源代码 但也没有帮助 非常感谢 好的 我在我的测试商店中通过以下设置找到了它 购物车中产品总价 含税 127 运费 12 费用 应税 13 优惠券折扣 10 通过这些设置 我在购物车对象上得到以下内容 c
  • 保持连接打开并读取数据,直到强行关闭

    当我的活动加载时 我正在连接到网络服务 当我得到服务的响应时 我再次致电服务人员 依此类推 Override protected void onCreate Bundle savedInstanceState callWebMethod C
  • 为 Delphi 应用程序设置帮助

    设置帮助的最佳方式是什么 特别是HTML 帮助 http msdn microsoft com en us library ms670068 VS 85 aspx 对于 Delphi 应用程序 我可以看到几种选择 但它们都有缺点 具体来说
  • iOS 键盘扩展内存崩溃

    我在使用 iOS 键盘扩展时遇到了内存问题 我有一个键盘视图的自定义视图 我将其初始化为loadViewUIInputViewController的 函数 然后将其添加到自我观作为一个孩子 但我有记忆问题 尤其是在 WhatsApp 应用程
  • 如何设置背景的十六进制颜色代码[重复]

    这个问题在这里已经有答案了 可能的重复 如何从十六进制字符串创建 UIColor https stackoverflow com questions 1560081 how can i create a uicolor from a hex
  • 不是 URL 的 URI 示例?

    已经向我解释过很多次了 所有 URL 都是 URI 但并非所有 URI 都是 URL 任何人都可以举一个 URI 但不是 URL 的例子吗 示例盗自here http www pierobon org iis url htm 其中还有差异的
  • 如何在多台远程机器上使用 docker swarm 设置多主机网络

    在问这个问题之前 我已经阅读了很多文章和 stackoverflow 问题 但我无法获得适合我的设置的正确答案 也许它已经得到解答 这是我一直在努力让它发挥作用的架构 我有三台物理机 我想设置具有多主机网络的 Docker swarm 以便
  • 当 void 运算符的计算结果始终为 undefined 时,为什么它会调用 GetValue(expr)?

    JavaScript 中的 void 运算符 http ecma262 5 com ELS5 Section 11 htm Section 11 4 2将调用内部GetValue expr 但总是返回undefined 无论值或表达式是什么
  • 当 UISlider 成为 UIView 其他 self.view 的子视图时,它不会工作

    当我将滑块添加为除 self view 之外的任何视图的子视图时 它不起作用 不滑动 但当它是 self view 的子视图时 它工作正常 您可以在 self view 之外的其他视图上看到它 但它不起作用 这是我的代码 alphaSlid
  • 将服务器端渲染添加到 create-react-app

    我正在研究 create react app 和 SSR 我在这个 repo 中添加了 redux 和 react router gt https github com sarovin StarteKit https github com
  • 无法使用 hist() 函数对齐日期时间对象直方图中的分箱

    所以我试图绘制一些日期时间对象的直方图 但我永远无法让垃圾箱与条形图对齐 我的代码如下 我首先导入我的内容并声明开始 结束和一天对象 import datetime import matplotlib pyplot as plt end d
  • 按距离对邮政编码邻近搜索进行排序(php/mysql)

    我有一个表 用户邮政编码 其中包含用户的邮政编码 纬度和经度 我在 stackoverflow 上找到了一个函数 可以查找特定半径内的邮政编码 function zipcodeRadius lat lon radius global mys
  • (_hidden#919_:0) 崩溃符号文件内

    我正在尝试手动符号化崩溃日志 因为 Xcode 7 不会为我做这件事 然而 我得出了这个结果 这是什么意思 我能用它做什么 我也使用过atos 它只是给了我相同的地址 我确信我有正确的 dSYM app 和日志 Thanks When yo
  • 是什么破坏了 .net 二进制 (dll) 接口

    考虑两个 net dll 首先 application dll 包含主要业务逻辑和数据访问代码 第二个 webservice dll 主要由 WebMethod 组成 这些 WebMethod 链接到 application dll 的对象
  • 如何在 rmarkdown 中格式化 sessionInfo() ?

    如果我想在 R 中很好地打印 PDF 中的 sessionInfo 我可以使用 toLatex sessionInfo 似乎应该有一个类似的选项让 rmarkdown 在 HTML 中呈现 但我在这里或 Rdocumentation 上找不
  • 如何在android中制作水平滚动视图

    我想做这种水平滚动 看图片 gt gt gt gt XML 文件保存在 res layout main xml 我的 main xml 文件有错误吗 我想用
  • 如何在没有 root 权限的情况下创建多分区 SD 磁盘映像?

    是否可以在没有 root 权限 即无环回挂载 的情况下在 linux 中创建完整的 SD 映像 我正在寻找一种自动化嵌入式系统映像创建的方法 该映像应包含特定的分区结构以及格式化为 FAT 和 ext2 的分区 并填充来自构建系统的文件 最
  • 表达式“b=(b-x)&x”是什么意思?

    假设 x 是一个集合 以下代码将遍历集合 x 的子集 int b 0 do process subset b while b b x x 我读到了有关位操作及其如何用于表示集合的读物 表达什么意思b b x x意思是 它是如何工作的 我熟悉
  • WPF TreeView ObservableCollection 通知示例代码

    我正在尝试编写一个 C WPF 应用程序 但我被 TreeView 和 ObservableCollection 困住了 这是我的 TreeView 项目 Root SubItem SubItem Root SubItem SubItem
  • React:动态导入jsx

    这个问题与将 JSX 文件动态导入 React 相关 基本上 我们有一个主要组件 它根据数据库中存储的结构动态呈现其他组件 动态组件存储在子目录 Components 中 我们静态地将 this 定义为 import CompA from