【发布时间】:2016-02-03 05:46:57
【问题描述】:
在 React Native 中是否有一种方法可以在全局变量上定义我将使用的所有字符串,就像在 Android 开发中一样,有一个 String.xml,您可以在其中放置所有字符串。
【问题讨论】:
标签: android ios reactjs react-native
在 React Native 中是否有一种方法可以在全局变量上定义我将使用的所有字符串,就像在 Android 开发中一样,有一个 String.xml,您可以在其中放置所有字符串。
【问题讨论】:
标签: android ios reactjs react-native
我所做的是创建一个全局模块...
// 文件:Globals.js
module.exports = {
STORE_KEY: 'a56z0fzrNpl^2',
BASE_URL: 'http://someurl.com',
COLOR: {
ORANGE: '#C50',
DARKBLUE: '#0F3274',
LIGHTBLUE: '#6EA8DA',
DARKGRAY: '#999',
},
};
那我只需要在顶部...
const GLOBAL = require('../Globals');
然后像这样访问它们...
GLOBAL.COLOR.ORANGE
这似乎是一个非常流行和有用的答案,所以我想我应该用更当前的语法来更新它。以上仍然适用于 CommonJS 模块系统,但现在你很可能会遇到 ES6 和 importmodules 而不是 require 它们。
// 文件:Globals.js
export default {
STORE_KEY: 'a56z0fzrNpl^2',
BASE_URL: 'http://someurl.com',
COLOR: {
ORANGE: '#C50',
DARKBLUE: '#0F3274',
LIGHTBLUE: '#6EA8DA',
DARKGRAY: '#999',
},
};
// 使用...
import GLOBALS from '../Globals'; // the variable name is arbitrary since it's exported as default
// 并以与之前相同的方式访问它们
GLOBALS.COLOR.ORANGE
【讨论】:
如果您想根据平台本地化在语言之间切换。
通过 npm 获取 node_module
npm i react-native-localization --save
在类中定义变量:
// Localisation.js
let LocalizedStrings = require ('react-native-localization');
let strings = new LocalizedStrings ({
en: {
loginTitle: "Login",
},
de: {
loginTitle: "Anmelden",
}
})
当您需要字符串时:
var STRINGS = require ('./Localization');
<Text>{STRINGS.loginTitle}</Text>
【讨论】:
我也制作了一个类似Chris Geirman's answer 的模块,但无法通过require 引用它。相反,我让它与import * as GLOBAL from '../Globals';一起工作
【讨论】:
React Native 中的global 就像 web 开发中的窗口。
// declare a global varible
global.primaryColor = '***';
//now you can use this variable anywhere
console.log(primaryColor);
【讨论】: