当前位置: 首页 > 知识库问答 >
问题:

如何使用变量导入React中的组件或文件?

裴令秋
2023-03-14

我正在使用React构建一个web应用程序,它显示了您选择的建筑的蓝图,位于已选择的校园中。

我有一个“内容”组件,根据您的选择加载校园或建筑地图。“构建地图”组件需要根据您选择的建筑加载特定的蓝图。它获取带有建筑物名称的props.building,但我不知道如何使用该变量加载组件。

我试过导入、获取和请求,但似乎没有任何效果。

请帮忙。

我的代码如下所示:

//内容组件

<BuildingMap building={selectedBuilding} campus={selectedCampus} />

//BuildingMap组件

import *MyBlueprint* from (specific folder depending on the campus selected)

class BuildingMap extends React.Component {
  render(){
    return (
      <div className="blueprint" id={this.props.building}>
         {*MyBlueprint*}
      </div>
    )
  }
}

共有3个答案

顾乐心
2023-03-14

要补充@Andreyco的答案:

对组件类使用字符串ID/名称的查找表是一种典型的React习惯用法。一个常见的用例是模态管理器组件,它可以呈现多种不同类型的模态。有关一些示例,请参见Dan Abramov在“如何在Redux中呈现模态对话框?”(不是特定于Redux),以及我的React/Redux链接列表的React组件模式#模态对话框和Redux技术#UI部分中的一些相关文章。

根据@azium的评论:完全可以使用动态导入(通过require.sure()或新的import()函数)在运行时加载块,并且可以在加载时将这些动态导入块的导出添加到查找表中。

诸葛嘉熙
2023-03-14

这个问题很古老,但是当我在寻找如何解决同样的问题时,让我给出我的答案。它可以通过动态导入React.lazy:

const OtherComponent = React.lazy(() => import('./OtherComponent'));

点击这里查看更多详情:https://reactjs.org/docs/code-splitting.html#reactlazy

百里君博
2023-03-14

不幸的是,您不能在React环境中动态导入/要求组件。

根据有多少建筑/蓝图,可以逐个导入它们,创建构件建筑图并按建筑ID拾取构件。

如果有许多/无限的组件要加载,我肯定会选择另一种方法——不知道你问题的内容。

import BlueprintA from './BlueprintA'
import BlueprintB from './BlueprintB'
import BlueprintC from './BlueprintC'
// ...

class BuildingMap extends React.Component {
  render(){
    const C = {
      buildingA: BlueprintA,
      buildingB: BlueprintB,
      buildingC: BlueprintC,
      // ...
    }[this.props.building]

    return (
      <div className="blueprint" id={this.props.building}>
         <C />
      </div>
    )
  }
}
 类似资料:
  • 问题内容: 我想将CSS文件导入React组件。 我已经尝试过,但是下面出现错误; 找不到模块:错误:无法解析c:\ Users \ User \ User \ Documents \ pizza-app \ client \ src \ components @中的“文件”或“目录” ../../../public/styles/disabledLink。 /client/src/compone

  • 在Python(2.7)中,我想在一个文件中创建几个变量。然后在其他文件中使用这些变量。没有任何类或函数。只是从不同的文件中访问这些变量。 对于包含变量的文件(可能是这样的)是如何实现的? 变量。派克 然后在一个想要使用这些变量的文件中? 文件1。派克

  • 问题内容: 我在玩和使用和。我想在不同的文件中构建多个组件,将其导入单个文件并将其捆绑在一起 假设我有几个这样的组件: my-navbar.jsx main-page.jsx 使用webpack并按照其教程进行操作,我有: 构建项目并运行它之后,在浏览器控制台中出现以下错误: 我究竟做错了什么?如何正确导入和导出组件? 问题答案: 尝试 默认设置 组件中的导出: 通过使用默认值,您表示将成为该模块

  • 问题内容: 我正在尝试在React组件中加载language.json文件。当我想导入json文件时,第一步出现以下错误。这是错误: 我正在使用webpack,这是配置文件: 并且我已经安装了以下软件包: 这就是我尝试导入文件(ES6格式)的方式: 另外,我检查了json文件格式并进行了验证!那么,您认为问题出在哪里? 问题答案: azium是正确的,需要加载程序,但这是很好的配置: npm命令

  • 问题内容: 我有几个具有以下CSS /组件结构的组件 我将CSS导入组件中,如下所示 但是,CSS被导入到本节中,并保持全局范围。 我期望CSS是: 组件作用域,即样式仅应用于 仅 在此组件内呈现的内容。 如果卸载该组件,该组件的样式将消失。 但是,从浏览器进行检查时,样式在该部分指定,并应用于所有组件 如何导入CSS进行组件作用域?似乎我不正确地理解React ES6中的CSS导入。 我正在关注

  • 我想将CSS文件导入react组件。 我已经尝试但我得到下面的错误; 找不到模块:错误:无法解析文件或目录.../.../.../Public/style/disabledLink in c:\用户\用户\文档\pisa-app\Client\src\组件@./Client/src/组件/ShoppingCartLink.js19:20-66哈希: 2d281bb98fe0a961f7c4版本: