Есть ли способ в React Native, который я могу определить в глобальной переменной все строки, которые я буду использовать, как в Android Development, есть String.xml, где вы можете поместить все свои строки.
Глобальная переменная/константа в действии
Ответ 1
Что я сделал, так это создал модуль globals...
//Файл: 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
_____________________
ОБНОВЛЕНИЕ 10 февраля 2018 года
Это кажется довольно популярным и полезным ответом, поэтому я подумал, что мне следует обновить его с использованием более современного синтаксиса. Вышесказанное все еще работает в модульных системах CommonJS, но сейчас вы с такой же вероятностью столкнетесь с модулями ES6 и import
, а не с require
.
Синтаксис модулей ECMAScript (ESM)
//Файл: 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 exported as default
//и доступ к ним так же, как и раньше
GLOBALS.COLOR.ORANGE
Ответ 2
global
в реакции native - это как окно в веб-разработке.
// declare a global varible
global.primaryColor = '***';
//now you can use this variable anywhere
console.log(primaryColor);
Ответ 3
Я тоже сделал модуль, как в ответ Криса Гейрмана, но не смог ссылаться на него с требованием. Вместо этого я получил его для работы с import * as GLOBAL from '../Globals';
Ответ 4
Если вы хотите переключиться между языками, связанными с локализацией платформы.
fetch node_module через npm
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>