devterview_$ iniciar simulação

`Key` no Flutter: quando você precisa de uma

MédioPlenoWidgets e estado

Pergunta

Quando adicionar uma `Key` a um widget muda o comportamento no Flutter, e qual a diferença entre `ValueKey` e `GlobalKey`?

Resposta esperada

Ao reconstruir, o Flutter faz o pareamento entre o widget novo e o Element existente por TIPO e posição na árvore. Isso quebra em listas de widgets STATEFUL que reordenam/inserem/removem: sem key, o Flutter parеia por posição e o estado (scroll, texto digitado, animação) cola no widget errado — mesmo bug do `key={index}` no React. Uma `ValueKey`/`ObjectKey` estável (o id do item) faz o pareamento por identidade, preservando o estado certo. `GlobalKey` é diferente e mais pesada: dá uma identidade ÚNICA na árvore inteira, permite acessar o State ou o contexto daquele widget de fora (`_formKey.currentState.validate()`), e mover um subtree com estado pra outro lugar da árvore sem perder o estado. Use `ValueKey` em listas; `GlobalKey` só quando precisa MESMO do acesso externo (forms) — ela tem custo e não deve ser recriada a cada build.

Por que perguntam isso

Pergunta pleno de Flutter. Paralelo direto com a pergunta de reconciliação/key do React. Sinal bom: distinguir ValueKey (listas) de GlobalKey (acesso externo, forms).

#keys#valuekey#globalkey#listas
publicidade

Perguntas de acompanhamento

Relacionadas