React.js Как передать переменную из другого js-файла, у которого нет экспорта

#javascript #reactjs

#javascript #reactjs

Вопрос:

У меня есть автоматически созданный довольно большой js-файл, содержимое которого представляет собой всего лишь одну большую переменную, подобную этой:

 ConstDef.js:
var ConstantDefinitions = {
variable1: "blahbalhbalh",
variable2: "blahBlahBlah",
...
variable10000: "BlahbluuBleh"
}
  

Как я могу получить доступ к содержимому этого файла в React.js ?
Если я добавлю export {ConstantDefinitions} вручную внизу ConstDef.js , я могу легко написать что-то вроде:

 import { ConstantDefinitions } from './ConstDef';

const defHelper = {
  getStringByKey(key) {
    const def = ConstantDefinitions [key];
    return def;
  }
};

export default defHelper ;
  

Мой план B — написать скрипт, который каким-то образом добавит export {ConstantDefinitions} к моему автоматически сгенерированному файлу, Однако я пытаюсь получить доступ к этому объекту, не манипулируя исходным кодом.

Ответ №1:

Вы могли бы сгенерировать файл Json вместо объекта JS и импортировать его из компонента React

Ответ №2:

Я думаю, что лучший метод — добавить экспорт в ваш генератор.

Но поскольку у вас в файле есть переменная var, вы можете выбрать совершенно неправильный (но работоспособный) путь. Вы можете получить доступ к своей переменной, поскольку она хранится в глобальной области видимости. https://www.javatpoint.com/javascript-global-variable

 import './youPathToVariable';
...
window.ConstantDefinitions
...
  

Также (как @Umberto упомянул в своем ответе) вы можете сгенерировать файл json)