我正在使用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>
)
}
}
要补充@Andreyco的答案:
对组件类使用字符串ID/名称的查找表是一种典型的React习惯用法。一个常见的用例是模态管理器组件,它可以呈现多种不同类型的模态。有关一些示例,请参见Dan Abramov在“如何在Redux中呈现模态对话框?”(不是特定于Redux),以及我的React/Redux链接列表的React组件模式#模态对话框和Redux技术#UI部分中的一些相关文章。
根据@azium的评论:完全可以使用动态导入(通过require.sure()
或新的import()
函数)在运行时加载块,并且可以在加载时将这些动态导入块的导出添加到查找表中。
这个问题很古老,但是当我在寻找如何解决同样的问题时,让我给出我的答案。它可以通过动态导入React.lazy:
const OtherComponent = React.lazy(() => import('./OtherComponent'));
点击这里查看更多详情:https://reactjs.org/docs/code-splitting.html#reactlazy
不幸的是,您不能在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版本: