反应创建常量文件

如何在 ReactJs 中创建常量文件,如: key-value,

ACTION_INVALID = "This action is invalid!"

并在其他组件中使用

errorMsg = myConstClass.ACTION_INVALID;
119779 次浏览

您可以简单地为常量创建一个对象:

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

然后利用它。

如果您是捆绑,您可以 export这个对象,然后 import为每个组件文件。

我不完全明白你的问题,但如果我明白的话,答案应该很简单:

根据我的理解,您只需要创建一个带有常量的文件,然后在另一个文件中使用它。

文件:

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;

如果您使用的是 response,那么您应该有 webpack 或 packager (用于反应本机) ,所以您应该有一个 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)

顾名思义,Object.zen ()冻结对象并阻止任何人更改值。请注意: 如果值是对象本身,它们是可更改的(除非它们也被冻结)

Monad 的回答上展开,用于不想一直输入 myConstClass的情况:

文件:

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’以大写字母开头,因为它在代码中的行为就像一个类。)

在 nodejs 环境中,当使用绝对路径时,已经有不推荐的“常量”,它可能与您的冲突,所以最好是创建一个文件夹并将您的常量放在那里或创建一个名为 常规的文件。

你的常数应该是这样的,使用 Object.freeze,这样常数就不会因为副作用而改变。应该对每个对象使用 Object.freeze

export const ACTION_INVALID = "This action is invalid!"
export const FILE_TYPES = Object.freeze({
IMAGE: Object.freeze(["JPEG", "PNG"]),
VIDEO: Object.freeze(["MP4", "M4V", "MOV", "3GP", "3G2", "WMV", "ASF", "AVI", "FLV", "MKV", "WEBM"])
})