Components

Num

<Num> コンポーネントの APIリファレンス

概要

<Num> コンポーネントは、ユーザーの locale に応じて書式化された数値文字列をレンダリングし、formatting の options でカスタマイズできます。

<Num>{100}</Num>
// 出力:100

すべてのフォーマットは、Intl.NumberFormat ライブラリを用いてローカルで行われます。

リファレンス

Props

Prop

Type

説明

Prop説明
childrenコンポーネント内に描画するコンテンツ。通常は数値で、現在のlocaleとoptionsに基づきフォーマットされます。指定がある場合はvalue propより優先されます。
nameメタデータ用途で使用する数値フィールドの任意の名称。
value数値のデフォルト値。文字列または数値を指定できます。文字列はフォーマット前に数値へパースされます。
options数値の任意のフォーマット用options。Intl.NumberFormatOptions の仕様に準拠します。通貨や小数点以下の桁数などのスタイルを定義するために使用します。
localesフォーマットに用いるlocaleを指定するための任意の対応ロケール。指定しない場合はユーザーのデフォルトのlocaleが使用されます。localesの指定についてはこちらを参照してください。

戻り値

フォーマット済みの数値文字列を含む JSX.Element


基本例

この例では、ユーザーのlocaleに応じて item.quantity が再フォーマットされます。

QuantityDisplay.jsx
import { Num } from 'gt-next';

export default function Inventory(item) {
  return (
    <Num> {item.quantity} </Num>  
  );
}

locales の指定

既定では、locale はユーザーのブラウザー設定によって決まりますが、 <Num> コンポーネントに対して locale を明示的に設定することもできます。

PriceDisplay.jsx
import { Num } from 'gt-next';

export default function CountDisplay(item) {
  return (
    <Num locales={['fr-FR']}> {item.count} </Num> 
  );
}

<Num> コンポーネントの翻訳

数値を翻訳対象の長い文の中に含めたい場合は、コンテンツ全体を <T> コンポーネントで囲むだけです。

DynamicPriceDisplay.jsx
import { T, Num } from 'gt-next';

export default function DynamicPriceDisplay(item) {
  return (
    <T id="price">
      在庫は <Num> {item.count} </Num> 個あります。 // [!code highlight]
    </T>
  );
}

カスタムフォーマット

<Num> は、フォーマットに Intl.NumberFormat ライブラリを使用します。

import { Num } from 'gt-next';

export default function CustomFormat(number) {
  return (
    <Num
      options={{ style: "decimal", maximumFractionDigits: 2 }}
    >
      {number}
    </Num>
  );
}

注意事項

  • <Num> コンポーネントは、ユーザーの locale に合わせて数値を整形するために使用します。
  • <T> コンポーネント内では、すべての動的な数値を必ず <Num> コンポーネントで囲んでください。

次のステップ

  • <Num> コンポーネントや <Currency><DateTime><Var> などの他の Variable コンポーネントの詳細や使用例については、

このガイドはどうでしたか?

Num