Я все еще новичок в ряде концепций 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
В связи с чем возникают вопросы: а) что именно я сделал, чтобы значение, которое, как я полагал, правильно ссылалось на не, было прочитано приложением, и б) как мне либо i) изменить мою настройку ссылки на файл конфигурации в файле шаблона, ii) изменить фактический файл конфигурации, либо iii) изменить средства, с помощью которых я делаю вызов переменной конфигурации, чтобы убедиться, что это правильно ссылаются при выполнении?
Заранее спасибо.