Tree view
Um modo de visualização em árvore apresentando uma lista hierárquica.
As visualizações em árvore podem ser usadas para representar um navegação no sistema de arquivos para exibir pastas e arquivos, um item representando uma pasta pode ser expandido para revelar o conteúdo da pasta, que pode ser arquivos, pastas ou ambos.
- Applications
 - Documents
 
- Applications
 - Documents
 
- Applications
 - Documents
 
Objeto complexo
Enquanto o componente TreeView/TreeItem maximiza a flexibilidade, um passo extra é necessário para lidar com um objetos complexos.
Vamos considerar uma variável de dados com a seguinte estrutura, a recursão pode ser usada para lidar com este cenário.
const data = {
  id: 'root',
  name: 'Parent',
  children: [
    {
      id: '1',
      name: 'Child - 1',
    },
    // …
  ],
};
- Child - 1
 - Child - 3
 
Propriedade ContentComponent
Você pode usar a propriedade ContentComponent e o hook useTreeItem para customizar ainda mais o comportamento do TreeItem.
Como limitar a expansão para clicar no ícone:
- Applications
 - Documents
 
Ou aumentando a largura do indicador de estado:
- Applications
 - Documents
 
- Hello
 - Subtree with children
 - World
 - Something something
 
All Mail
Trash
Social
90Updates
2,294Forums
3,566Promotions
733
History
- One
 - Five
 - Seven
 
O comportamento dos itens desabilitados da árvore depende da propriedade disabledItemsFocusable.
Se é falsa:
- As teclas de setas não focarão nos itens desabilitados e o próximo item não desabilitado será focado.
 - Digitar o primeiro caractere do rótulo de um item desabilitado não focará no item.
 - Interação do mouse ou teclado não irá expandir/recolher itens desabilitados.
 - Interação do mouse ou teclado não selecionará itens desabilitados.
 - Shift + teclas de setas irão pular itens desabilitados e o próximo item não desabilitado será selecionado.
 - Foco programático não focará itens desabilitados.
 
Se é verdadeira:
- As teclas de setas focarão em itens desabilitados.
 - Digitar o primeiro caractere do rótulo de um item desabilitado focará no item.
 - Interação do mouse ou teclado não irá expandir/recolher itens desabilitados.
 - Interação do mouse ou teclado não selecionará itens desabilitados.
 - Shift + teclas de setas não irão pular itens desabilitados, mas o item desabilitado não será selecionado.
 - Foco programático focará itens desabilitados.
 
Acessibilidade
(WAI-ARIA: https://www.w3.org/WAI/ARIA/apg/patterns/treeview/)
O componente segue as práticas de autoria da WAI-ARIA.
Para ter uma exibição em árvore acessível, você deve usar aria-labelledby ou aria-label para fazer referência ou fornecer um rótulo na TreeView, caso contrário, os leitores de tela irão anunciá-lo como "tree", tornando difícil entender o contexto de um item específico da árvore.