Как создать файл констант, например: key-value в ReactJs,
ACTION_INVALID = "This action is invalid!"
и использовать его в других компонентах
errorMsg = myConstClass.ACTION_INVALID;
Как создать файл констант, например: key-value в ReactJs,
ACTION_INVALID = "This action is invalid!"
и использовать его в других компонентах
errorMsg = myConstClass.ACTION_INVALID;
Вы можете просто создать объект для своих констант:
const myConstClass = {
ACTION_INVALID: "This action is invalid!"
}
И затем используйте его.
Если вы связываете, вы можете export
этот объект, а затем import
для каждого файла компонента.
Я не совсем уверен, что у меня есть ваш вопрос, но если бы я это сделал, это было бы очень просто:
Из моего понимания вы просто хотите создать файл с константами и использовать его в другом файле.
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.
Один из способов сделать это (не так уж и отличается от других ответов) - создать пустой файл 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)
Развернувшись на 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" для начала с большой буквы, поскольку оно действует как класс в коде.)
Если вы не хотите импортировать все, и вы используете Интернет. Вы можете создать файл, имя которого зависит от вас, но я назову его 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'
в каждый отдельный файл