Подтвердить что ты не робот

Создать файл констант

Как создать файл констант, например: key-value в ReactJs,

ACTION_INVALID = "This action is invalid!"

и использовать его в других компонентах

errorMsg = myConstClass.ACTION_INVALID;
4b9b3361

Ответ 1

Вы можете просто создать объект для своих констант:

const myConstClass = {
    ACTION_INVALID: "This action is invalid!"
}

И затем используйте его.

Если вы связываете, вы можете export этот объект, а затем import для каждого файла компонента.

Ответ 2

Я не совсем уверен, что у меня есть ваш вопрос, но если бы я это сделал, это было бы очень просто:

Из моего понимания вы просто хотите создать файл с константами и использовать его в другом файле.

fileWithConstants.js:

export const ACTION_INVALID = "This action is invalid!"
export const CONSTANT_NUMBER_1 = 'hello I am a constant';
export const CONSTANT_NUMBER_2 = 'hello I am also a constant';

fileThatUsesConstants.js:

import * as myConstClass from 'path/to/fileWithConstants';

const errorMsg = myConstClass.ACTION_INVALID;

Если вы используете реакцию, у вас должен быть либо веб-пакет, либо пакет (для реагирования - родной), поэтому вы должны иметь babel, который может перевести использование экспорта и импорта в более старые js.

Ответ 3

Один из способов сделать это (не так уж и отличается от других ответов) - создать пустой файл constants.js и добавить туда свои константы. Я использую это для конфигов

module.exports = Object.freeze({
  ACTION_INVALID :'This action is invalid',
  ACTION_VALID:'Some other action',
});

Тогда вы можете потребовать его в любом месте

import ConstantsList from './constants';

и используйте

console.log(ConstantsList.ACTION_INVALID)

Ответ 4

Развернувшись на Monad answer, для ситуаций, когда вы не хотите набирать myConstClass все время:

fileWithConstants.js:

export const ACTION_INVALID = "This action is invalid!"
export const CONSTANT_NUMBER_1 = 'hello I am a constant';
export const CONSTANT_NUMBER_2 = 'hello I am also a constant';

fileThatUsesConstants.js:

import { ACTION_INVALID } from 'path/to/fileWithConstants';

const errorMsg = ACTION_INVALID;

(Кроме того, если режим Monad работает лучше для вас, я считаю, что соглашение предназначено для "MyConstClass" для начала с большой буквы, поскольку оно действует как класс в коде.)

Ответ 5

Если вы не хотите импортировать все, и вы используете Интернет. Вы можете создать файл, имя которого зависит от вас, но я назову его constants.js.

//constants.js
var MyConstants = {
    apiUrl: "http://localhost/side-project/english/backend/"
}

В index.html вы можете вызвать constants.js выше bundle.js

Я использую webpack

This guy here
<script type="text/javascript" src="/src/js/constants.js"></script>
<script type="text/javascript" src="/dist/js/bundle.js"></script>

И теперь вам не нужно помещать import Constants from '..path_to_constants' в каждый отдельный файл