返回 Skill 列表
extension
分类: 开发与工程无需 API Key

mantine-combobox

使用Mantine的Combobox基础组件构建自定义下拉菜单/选择框/自动完成/多选组件。在以下情况下使用此技能:(1) 使用Combobox基础组件创建新的自定义类似选择框的组件,(2) 构建可搜索的下拉菜单,(3) 实现多选或标签输入变体,(4) 自定义选项渲染,(5) 添加自定义过滤逻辑,或(6) 任何涉及useCombobox、Combobox.Target、Combobox.Option或Combobox.Dropdown的任务。

person作者: jakexiaohubgithub

Mantine Combobox Skill

Overview

Combobox provides low-level primitives for building any select-like UI. The built-in Select, Autocomplete, and TagsInput components are all built on top of it.

Core Workflow

1. Create the store

const combobox = useCombobox({
  onDropdownClose: () => combobox.resetSelectedOption(),
  onDropdownOpen: () => combobox.selectFirstOption(),
});

2. Render structure

<Combobox store={combobox} onOptionSubmit={handleSubmit}>
  <Combobox.Target>
    <InputBase
      component="button"
      pointer
      rightSection={<Combobox.Chevron />}
      onClick={() => combobox.toggleDropdown()}
    >
      {value || <Input.Placeholder>Pick value</Input.Placeholder>}
    </InputBase>
  </Combobox.Target>
  <Combobox.Dropdown>
    <Combobox.Options>
      {options.map((item) => (
        <Combobox.Option value={item} key={item}>{item}</Combobox.Option>
      ))}
    </Combobox.Options>
  </Combobox.Dropdown>
</Combobox>

3. Handle submit

const handleSubmit = (val: string) => {
  setValue(val);
  combobox.closeDropdown();
};

Target Types

| Scenario | Use | |---|---| | Button trigger (no text input) | <Combobox.Target targetType="button"> | | Input trigger | <Combobox.Target> (default) | | Pills + separate input (multi-select) | <Combobox.DropdownTarget> + <Combobox.EventsTarget> |

References

  • references/api.md — Full API: useCombobox options and store, all sub-component props, CSS variables, Styles API selectors
  • references/patterns.md — Code examples: searchable select, multi-select with pills, groups, custom rendering, clear button, form integration