2016-08-19 75 views
13

如何创建常量文件,如:关键 - 在ReactJs值,阵营创建常量文件

ACTION_INVALID = "This action is invalid!" 

,并使用其他组件

errorMsg = myConstClass.ACTION_INVALID; 
+0

一全局常量?你是捆绑吗? –

+0

我使用浏览器同步服务器 – TeodorKolev

回答

18

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

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

然后使用它。

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

+0

不起作用,什么意思是捆绑? – TeodorKolev

21

我不能完全肯定我得到了你的问题,但如果我做到了,应该是很简单的:

从我的理解,你只是想创建一个常量的文件,并在另一个文件中使用它。

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; 

如果您正在使用的反应,你应该有任何的WebPack或打包(用于反应母语),所以你应该有这通天可以将您使用的输出和输入转换为较老的js。

+0

导出常量无效 – TeodorKolev

+0

你是什么意思?我假设你使用老版本的js,在这种情况下尝试exports.ACTION_INVALID而不是导出const并使用require('path/to/fileWithConstants')。ACTION_INVALID而不是导入。 –

+0

'''events.js:160 throw er; //未处理'错误'事件 ^ SyntaxError:D:/constants.jsx:意外标记(2:11) 类常量扩展了React.Component { export const ACTION_INVALID =“此操作无效! export const CONSTANT_NUMBER_1 ='你好,我是一个常量'; export const CONSTANT_NUMBER_2 ='你好,我也是一个常量'; }''' – TeodorKolev

3

做到这一点的一种方法(与其他答案虽然没有太大不同),但要创建一个裸constants.js文件并在其中添加常量。我用这个CONFIGS

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

然后,你可以要求它在任何地方

import ConstantsList from './constants'; 

,并使用

console.log(ConstantsList.ACTION_INVALID) 
2

扩展在Monad's 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; 

(另外,如果单子的方式为你工作好,我相信公约是“MyConstClass”开始一个大写字母,因为它的作用就像一个在代码类。)

0

如果你不想导入一切,你使用网络。您可以创建一个文件,其名称取决于您,但我会将其称为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'在每一个文件