MenüChevron Down
Combobox Kombinationsfeld - Docs - Artefact

Combobox Kombinationsfeld

Forms
Intelligente Auto-Erkennung

Einführung

Ein Bedienelement, das ein Texteingabefeld mit einer Listbox kombiniert und Benutzern das Filtern und Auswählen aus einer Liste von Optionen ermöglicht.

Hydration

Tier 2 — intelligente Auto-Erkennung. Eine Combobox wird als statisches HTML gerendert und liefert keinen Client-JS, sofern kein Verhaltenssignal vorhanden ist. Übergeben Sie interactive={true}, um die Hydration zu erzwingen, oder interactive={false}, um ein statisches Rendering zu erzwingen.

Sie hydriert als Insel, sobald eines der folgenden Signale vorhanden ist (oder interactive={true} gesetzt ist):

  • open (kontrollierter Öffnungszustand)
  • inputValue (kontrollierter Eingabewert)
  • onToggle
  • onInputChange
  • onItemSelect (Rückruf bei Elementauswahl — reine Auswahl-Comboboxes hydrieren darauf)
interactive-PropErgebnis
weggelassen, kein SignalStatisch — kein Client-JS
weggelassen, Signal vorhandenHydriert als Insel
trueHydriert als Insel
falseStatisch — kein Client-JS

Alle Interaktivitätsentscheidungen der Bibliothek laufen über den gemeinsamen shouldHydrate()-Helfer in app/components/ui/island-utils.ts.

Verwendung

import { Combobox } from "../components/ui";

const items = [
  { label: "React", value: "react" },
  { label: "Solid", value: "solid" },
  { label: "Svelte", value: "svelte" },
  { label: "Vue", value: "vue" },
  { label: "Hono", value: "hono" },
];

export default function MyPage() {
  return (
    <Combobox
      interactive
      items={items}
      label="Framework"
      placeholder="Select a Framework"
      allowClear
    />
  );
}

CMS-Seitenbauer

Diese Komponente ist als combobox-Block im Seitenbauer (content/pages/*.json) verfügbar:

{
  "type": "combobox",
  "label": "Framework",
  "placeholder": "Select a Framework",
  "items": [
    { "label": "React", "value": "react" },
    { "label": "Hono", "value": "hono" }
  ]
}

Eigenschaften

EigenschaftTypBeschreibung
itemsComboboxItem[]Ein Array von anzuzeigenden Elementen in der Liste.
labelChildDie Beschriftung für die Combobox.
placeholderstringDer Platzhaltertext für das Eingabefeld.
allowClearbooleanOb ein Löschen-Button im Eingabefeld angezeigt wird.
interactivebooleanErzwingt die Hydration als Insel.
openbooleanOb die Combobox-Liste geöffnet ist (kontrolliert).
inputValuestringDer aktuelle Wert des Eingabefelds (kontrolliert).
onToggle() => voidRückruf, der ausgelöst wird, wenn die Liste umgeschaltet wird.
onInputChange(value: string) => voidRückruf, der ausgelöst wird, wenn sich der Eingabewert ändert.
onItemSelect(value: string) => voidRückruf, der ausgelöst wird, wenn ein Element ausgewählt wird.

ComboboxItem

EigenschaftTypBeschreibung
labelstringDer Anzeigetext für das Element.
valuestringDer eindeutige Wert für das Element.
disabledbooleanOb das Element deaktiviert ist.