Подтвердить что ты не робот

Глобальная переменная/константа в действии

Есть ли способ в React Native, который я могу определить в глобальной переменной все строки, которые я буду использовать, как в Android Development, есть String.xml, где вы можете поместить все свои строки.

4b9b3361

Ответ 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>