NativeSelect

NativeSelectは、ユーザーがオプションのリストから1つの値を選択するために使用されるコンポーネントです。ブラウザ(ユーザーエージェント)によって提供されるネイティブなドロップダウンリストを表示します。

使い方

import { NativeSelect } from "@yamada-ui/react"
<NativeSelect.Root>
  <NativeSelect.Group>
    <NativeSelect.Option />
  </NativeSelect.Group>
  <NativeSelect.Option />
</NativeSelect.Root>

itemsを使う

バリアントを変更する

サイズを変更する

デフォルトの値を設定する

デフォルトの値を設定する場合は、defaultValueに値を設定します。

グループ化する

オプションをグループ化する場合は、NativeSelectGroupを使用します。

プレースホルダーをオプションに含めない

デフォルトでは、オプションにプレースホルダーが含まれています。プレースホルダーをオプションに含めない場合は、includePlaceholderfalseに設定します。

オプションを無効にする

オプションを無効にする場合は、NativeSelect.Optiondisabledtrueに設定します。

無効にする

無効にする場合は、disabledtrueに設定します。

読み取り専用にする

読み取り専用にする場合は、readOnlytrueに設定します。

無効な入力にする

無効な入力にする場合は、invalidtrueに設定します。

ボーダーの色を変更する

ボーダーの色を変更する場合は、focusBorderColorまたはerrorBorderColorに値を設定します。

アイコンをカスタマイズする

制御する

Props

アクセシビリティ

Field.Rootを使用しない場合は、NativeSelect.Rootaria-labelまたはaria-labelledbyを設定します。

const items = useMemo<NativeSelect.Item[]>(
  () => [
    { label: "日比野カフカ", value: "日比野カフカ" },
    { label: "市川レノ", value: "市川レノ" },
    { label: "亜白ミナ", value: "亜白ミナ" },
    { label: "四ノ宮キコル", value: "四ノ宮キコル" },
  ],
  [],
)

return (
  <NativeSelect.Root
    items={items}
    placeholder="Select a character"
    aria-label="キャラクター"
  />
)
const items = useMemo<NativeSelect.Item[]>(
  () => [
    { label: "日比野カフカ", value: "日比野カフカ" },
    { label: "市川レノ", value: "市川レノ" },
    { label: "亜白ミナ", value: "亜白ミナ" },
    { label: "四ノ宮キコル", value: "四ノ宮キコル" },
  ],
  [],
)

return (
  <VStack gap="sm">
    <Heading as="h3" id="label">
      キャラクター
    </Heading>

    <NativeSelect.Root
      items={items}
      placeholder="Select a character"
      aria-labelledby="label"
    />
  </VStack>
)

ARIAロールと属性

コンポーネントロールと属性使い方
NativeSelect.Fieldaria-describedbyNativeSelect.FieldField.Root内にあり、Field.RooterrorMessageまたはhelperMessage、もしくはField.ErrorMessageまたはField.HelperMessageが設定されている場合は、そのidを設定します。
aria-disableddisabledまたはreadOnlyが設定されている場合は"true"を設定します。
aria-invalidinvalidが設定されている場合は"true"を設定します。
aria-labelaria-labelが設定されていない場合は、placeholderの値を設定します。
aria-requiredrequiredが設定されている場合は"true"を設定します。

類似のコンポーネント

Switch

Switchは、オンとオフの状態を切り替えるために使用されるコンポーネントです。

SegmentedControl

SegmentedControlは、ユーザーが複数の選択肢の中から1つを選択するために使用されるコンポーネントです。

Radio

Radioは、ユーザーが複数の選択肢の中から1つの値を選択するために使用されるコンポーネントです。

Rating

Ratingは、ユーザーが評価を行うために使用させるコンポーネントです。

Checkbox

Checkboxは、ユーザーが複数の選択肢の中から複数の値を選択するために使用されるコンポーネントです。

Toggle

Toggleは、オンまたはオフの2つの状態を持つコンポーネントです。

RadioCard

RadioCardは、ユーザーが複数の選択肢の中から1つを選択するために使用されるコンポーネントです。

CheckboxCard

CheckboxCardは、ユーザーが複数の選択肢の中から複数の値を選択するために使用されるコンポーネントです。

使用しているコンポーネント・フック

使用されているコンポーネント・フック