React ComboBox Templates
O componente ComboBox Ignite UI for React permite definir modelos personalizados para diferentes áreas, como itens, cabeçalhos de grupo, lista vazia e ícones.
ComboBox Templates Example
Template Types
Item Template
ÉitemTemplate um template personalizado que, se definido, deve ser usado ao renderizar itens na lista de opções.
type City = {
name: string;
id: string;
country: string;
};
const renderItemTemplate = (args: ComboTemplateProps<City>) => {
const item = args.item;
return (
<span>
<b>{item.name}</b> [{item.id}] - {item.country}
</span>
);
};
<IgrCombo
valueKey="id"
displayKey="name"
groupKey="country"
data={Cities}
itemTemplate={renderItemTemplate}
></IgrCombo>
Group Header Template
ÉgroupHeaderTemplate um template personalizado que, se definido, deve ser usado ao renderizar cabeçalhos de grupo na lista de opções.
<IgrCombo
valueKey="id"
displayKey="name"
groupKey="country"
data={cities}
groupHeaderTemplate={renderGroupHeaderTemplate}
></IgrCombo>
const renderGroupHeaderTemplate = (args: ComboTemplateProps<City>) => {
return (
<span>Country of {args.item.country}</span>
);
}
Slots
Além de modelos personalizados, o componente ComboBox Ignite UI for React expõe vários slots que permitem aos usuários passar conteúdo personalizado para diferentes partes de combinação.
Header Slot
Para renderizar um cabeçalho personalizado acima da lista de opções, passe conteúdo para oheader slot:
<IgrCombo>
<header slot="header">
Header content goes here
</header>
</IgrCombo>
Footer Slot
Para renderizar um rodapé personalizado abaixo da lista de opções, passe conteúdo para ofooter slot:
<IgrCombo>
<footer slot="footer">
Footer content goes here
</footer>
</IgrCombo>
Empty List Slot
Para renderizar um conteúdo personalizado quando a operação de filtragem não retorna resultado, use oempty slot:
<IgrCombo>
<div slot="empty">¯\_(ツ)_/¯</div>
</IgrCombo>
Toggle Icon Slot
O ícone de alternância na entrada do combo também pode ser modificado pelotoggle-icon slot:
<IgrCombo>
<span slot="toggle-icon">
<IgrIcon name="down" collection="material"></IgrIcon>
</span>
</IgrCombo>
Clear Icon Slot
O ícone de clear pode ser alterado peloclear-icon slot:
<IgrCombo>
<span slot="clear-icon">
<IgrIcon name="clear" collection="material"></IgrIcon>
</span>
</IgrCombo>