javascript - 通过外部 JS 将配置对象包含到 React EJS 文件中
问题描述
我对许多 React 概念还比较陌生,所以这可能是我仍然不熟悉的东西……所以请耐心等待。
我有一个 React 项目,目前使用两个相关品牌的多个 EJS 文件,现在需要我在代码中分离品牌,以便我有通用代码并将品牌之间的任何差异转换为一系列配置文件,所以一旦在加载文档时确定了特定品牌,就可以加载适当的配置文件并插入配置值......因此,尽可能不基于品牌进行分支。
一个这样的主模板文件具有以下设置:
<% require(`../../config/${process.env.BRAND}/P_Display_Locations.js`) %>
<%= require('../layout/page_header.ejs')() %>
<%= require('../components/display-locations-dev-data.ejs')() %>
<%= require('../components/display-locations-header.ejs')() %>
<%= require('../components/display-locations-map.ejs')() %>
<%= require('../components/display-locations-centres.ejs')() %>
<%= require('../layout/page_footer.ejs')() %>
所以在这种情况下,根据品牌,无论是ABC
还是XYZ
,都可以加载适当的配置文件../../config/ABC/P_Display_Locations.js
,例如......
但是,似乎即使文件正在被解析(我已经通过强制错误更改模板中的文件路径来检查),所以我知道我正确引用了路径,似乎对象没有被传递到模板的其余部分。
例如, 的内容../../config/ABC/P_Display_Locations.js
如下:
const P_DISPLAY_LOC = {
cfg: {
heading: "Display Homes"
}
};
但是,当我尝试以下列方式将 的值渲染P_DISPLAY_LOC.cfg.heading
到<h1>
标签中时:../components/display-locations-header.ejs
<h1 class="c-page-header__heading ">
<%= P_DISPLAY_LOC.cfg.heading %>
</h1>
...我收到以下错误:
ERROR in Template execution failed: ReferenceError: P_DISPLAY_LOC is not defined
ERROR in ReferenceError: P_DISPLAY_LOC is not defined
这引出了问题,a)我到底做了什么导致我认为正确引用的值不被应用程序读取,以及 b)我如何或者 i)改变我在其中引用配置文件的设置模板文件,ii) 更改实际的配置文件,或 iii) 更改调用配置变量的方式,以确保在执行时正确引用它?
提前致谢。
解决方案
推荐阅读
- list - 如何让我的列表停止在某个值?
- python-3.x - 在 Python 3 中使用 for 循环和 numpy 索引值
- python - TypeError:attrib() 得到了一个意外的关键字参数“convert”
- python-3.x - 结合熊猫中按公共列排序的两个数据框
- c# - 剃刀页面 - 模型数组始终为空
- wpf - 使用 Mvvm 如何在 Datagrid wpf 中获取数据?
- javascript - 如何在js中内联声明变量?
- python - 在 Spotify API 上获取授权码(POST 请求)
- python - 将 Sphinx doctest 与:示例一起使用:
- angular - 无法解析 BypassSanitizerPipe 的所有参数:(?)