# react-native: declareVar URL: https://generaltranslation.com/ru/docs/react-native/api/strings/declare-var.mdx --- title: declareVar description: Справка по API для строковой функции declareVar() --- {/* СГЕНЕРИРОВАНО АВТОМАТИЧЕСКИ: Не редактируйте напрямую. Вместо этого изменяйте шаблон в content/docs-templates/. */} ## Обзор Функция `declareVar` — строковый аналог компонента `` при работе с `derive`. Она помечает динамическое содержимое внутри `derive`, которое должно исключаться из вычисления хеша и обрабатываться как переменные во время выполнения. ```jsx function Component() { function getGreeting(name) { return "Hello, " + declareVar(name); } // Результат: "Hello, {_gt_, select, other {Brian}}" gt(`${derive(getGreeting(name))}. How are you?`); // Результат: "Hello, Brian. How are you?" return

{message}

; } ``` `declareVar` оборачивает динамическое содержимое в ICU-совместимый заполнитель, который во время выполнения заменяется исходным значением. Если вы хотите удалить маркеры ICU, можно использовать [`decodeVars`](/docs/react-native/api/strings/decode-vars). **Маркеры ICU:** `declareVar` добавляет ICU-совместимые маркеры в исходный текст. Используйте `decodeVars`, чтобы при необходимости извлечь исходное значение для обработки строк. ## Справочник ### Параметры | Имя | Тип | Описание | | --------------- | ----------------------------------------------------------- | ---------------------------------------------------------------------------------------- | | `value` | ` value \| string \| number \| boolean\| undefined \| null` | Динамическое значение, которое нужно пометить как переменную. | | `options?` | `Object` | Параметры функции `declareVar`. | | `options.$name` | `string` | Имя переменной для контекста перевода. (Аналогично свойству `name` в компоненте ``) | ### Возвращает Строку с маркерами, совместимыми с ICU, которая сохраняет исходное значение и обрабатывается во время выполнения. *** ## Поведение ### Маркировка переменных Когда `declareVar` оборачивает значение, он: 1. Преобразует значение в формат выражения ICU select 2. Помечает его как динамический контент для обработки перевода 3. Исключает его из вычисления хеша перевода 4. Сохраняет исходное значение для интерполяции во время выполнения ### Формат ICU Функция возвращает строки, совместимые с ICU MessageFormat: ```jsx declareVar("John") // → "{_gt_, select, other {John}}" ``` *** ## Пример ### Базовое использование Помечайте динамическое содержимое внутри статических функций. ```jsx copy import { derive, declareVar, gt } from 'gt-react-native'; function getGreeting(name) { return `Hello, ${declareVar(name)}!`; } function Component() { const name = "Brian"; const message = gt(`${derive(getGreeting(name))} Welcome back.`); return

{message}

; } ``` ### С другими функциями ICU Вы можете использовать `declareVar` вместе с другими функциями ICU, чтобы создавать более сложные строки. ```jsx copy import { declareVar, derive, useGT } from 'gt-react-native'; function Component({ name1, name2 }) { const gt = useGT(); const message = gt("Hello, {name1}! My name is " + derive(declareVar(name2)), { name1 }); return

{message}

; // Результат: "Hello, Brian! My name is Archie" } ``` *** ## Примечания * Используйте `declareVar` только внутри функций, которые вызывает `derive` * Функция добавляет маркеры ICU, которые могут мешать обработке строк * Используйте `decodeVars`, чтобы при необходимости извлечь исходные значения * Переменные исключаются из перевода и сохраняются во время выполнения ## Дальнейшие шаги * См. [`derive`](/docs/react-native/api/strings/derive), чтобы создавать статические вызовы функций в строках * См. [`decodeVars`](/docs/react-native/api/strings/decode-vars), чтобы извлекать исходные значения * См. [``](/docs/react-native/api/components/var), чтобы узнать о JSX-эквиваленте