OTP入力
1桁ずつ入力する6つの欄を持つ、ワンタイムコードの入力です。見た目は6つの入力欄ですが、値は1つとして扱います。入力すると次へ進み、Backspaceで前へ戻り、矢印キーは値を変えずに移動します。貼り付けや自動入力のコードは、各欄に分配されます。
インストール
この OTP 入力を CLI または手動で追加できます。
ダークモード対応:この コンポーネント はBoardUIのセマンティックトークンに合わせて自動で切り替わります。 テーマスイッチの設定.
CLIがコンポーネントのソースと内部の依存ファイルをプロジェクトにコピーし、必要なnpmパッケージをインストールします。
npx boardui@latest add input-otp共有UIパッケージや独自のインポートエイリアスを使う場合は、 インストールパスの設定 をCLIの実行前に設定してください。コピー&ペーストの例は、標準のインポートを使います。
制御値
値は、文字の配列ではなく、単一の文字列です。 パス 値 + onChange それを制御するために、または defaultValue コントロールされていないままにしてください。 onComplete 最後のボックスが埋め込まれる瞬間を発射します。これは通常、あなたが提出する場所です。
const [code, setCode] = useState("");
<InputOtp value={code} onChange={setCode} onComplete={(value) => verify(value)} aria-label="Verification code"/>長さ、グループ化および状態
length 箱の数を置き、 groupEvery それらを実行に分割し、長いコードが読みやすくなります。 isInvalid 箱に同じ錫の上の赤い端を失敗させます 入力 使用。
{/* Four boxes instead of six */}<InputOtp length={4} aria-label="PIN" />
{/* Split into groups: 000 000 */}<InputOtp groupEvery={3} aria-label="Verification code" />
{/* States */}<InputOtp isInvalid aria-label="Verification code" /><InputOtp isDisabled defaultValue="1234" aria-label="Verification code" />ペーストとオートフィル
すべてのボックスに貼り付けると、すべての文字をドロップするのではなく、その点から数字を配布します。同じパスは、OSオートフィルを処理します。iOSとChromeは、すべてのコードを単一のボックスに渡します。 autoComplete="one-time-code" 複数の文字を受け付けます。非数字は全体にストライプされ、箱は使用します inputMode="numeric" そのため、携帯電話は、スピナーやストレイ文字を使わずにナンバーパッドを表示します number 入力は持って来ます。