Components

Валюта

Справочник по API компонента <Currency>

Обзор

Компонент <Currency> отображает числовое значение как денежную сумму. Число форматируется в соответствии с текущей локалью и переданными необязательными параметрами. Компонент отвечает только за форматирование и не выполняет конвертацию валют или расчёт обменных курсов.

<Currency>{100}</Currency>
// Результат: $100.00

Всё переформатирование выполняется локально с использованием библиотеки Intl.NumberFormat.

Справка

Пропсы

Prop

Type

Описание

PropОписание
childrenСодержимое, отображаемое внутри компонента. Обычно это число, представляющее значение для форматирования как валюты. Если указано, имеет приоритет над пропом value.
nameНеобязательное имя для поля валюты, используемое в целях метаданных.
valueЗначение валюты по умолчанию. Если не указано, используется children. Может быть строкой или числом. Строки будут преобразованы в числа перед форматированием.
currencyТип валюты, например «USD» или «EUR». Определяет символ и правила форматирования.
optionsНеобязательные параметры форматирования валюты в соответствии со спецификацией Intl.NumberFormatOptions. Используйте для настройки, например максимального количества дробных знаков, группировки и т. п.
localesНеобязательные локали для указания локали форматирования. Если не указано, используется локаль пользователя по умолчанию. Подробнее о задании локалей см. здесь.

Возвращает

JSX.Element, содержащий отформатированное значение валюты в виде строки.


Примеры

Базовый пример

Компонент <Currency> используется для отображения локализованных денежных значений.

PriceDisplay.jsx
import { Currency } from 'gt-react'; 

export default function PriceDisplay(item) {
    return (
        <Currency> {item.price} </Currency> 
    );
}

Указание валюты

Здесь мы выводим цену в евро.

PriceDisplay.jsx
import { Currency } from 'gt-react';

export default function PriceDisplay(item) {
  return (
    <Currency currency="EUR"> {item.price} </Currency> 
  );
}

Перевод компонентов <Currency>

Допустим, вы хотите, чтобы валюта отображалась в предложении, которое тоже переведено. Вы можете обернуть компонент <Currency> в компонент <T>.

PriceDisplay.jsx
import { T, Currency } from 'gt-react';

export default function PriceDisplay(item) {
  return (
    <T id="itemPrice"> // [!code highlight]
      Цена: <Currency> {item.price} </Currency>.
    </T> 
  );
}

Пользовательское форматирование

Здесь мы выводим цену в GBP с фиксированным числом десятичных знаков и с узким символом валюты (то есть «$100», а не «US$100»). Подробнее о параметрах см. в Intl.NumberFormatOptions.

PriceDisplay.jsx
import { Currency } from 'gt-react';

export default function PriceDisplay(item) {
  return (
    <Currency
      currency="GBP"
      options={{ 
        currencyDisplay: 'narrowSymbol', 
        minimumFractionDigits: 2, 
        maximumFractionDigits: 2, 
      }} 
    >
      {item.price}
    </Currency>
  );
}

Примечания

  • Компонент <Currency> используется для форматирования денежных сумм с учётом текущей локали и переданных необязательных параметров.
  • Компонент <Currency> отвечает только за форматирование и не выполняет никаких конвертаций или расчётов обменных курсов.
  • Содержимое компонента <Currency> не отправляется в API для перевода. Все преобразования выполняются локально с помощью библиотеки Intl.NumberFormat.

Дальнейшие шаги

  • Подробности и примеры использования компонента <Currency> и других компонентов переменных — <Num>, <DateTime> и <Var>

Насколько полезно это руководство?

Валюта