Checklist de atualização de desempenho de lista para integração direta. FlashList recicla um pequeno conjunto de visualizações nativas - FlatList monta mais linhas fora da tela. Use este cookbook quando o profiling mostrar lentidão na rolagem em feeds; para trade-offs e ajuste, veja FlashList vs FlatList.
Copie este checklist por tela ao migrar de FlatList:
## Migração para FlashList: ProductFeedScreen- [ ] npx expo install @shopify/flash-list- [ ] Trocar importação: FlatList → FlashList de @shopify/flash-list- [ ] Adicionar estimatedItemSize (medir altura média da linha nas DevTools ou especificação de design)- [ ] Definir minHeight no contêiner da linha para corresponder à estimativa- [ ] Envolver o componente de linha em memo()- [ ] Estabilizar renderItem com useCallback- [ ] Auditar alturas de linha variáveis - substituir overrideItemLayout se necessário- [ ] Testar rolagem rápida em dispositivo Android físico- [ ] Verificar ListHeaderComponent / ListFooterComponent / estado vazio- [ ] Confirmar layout de grade numColumns, se aplicável- [ ] Profiler antes/depois - React DevTools + sobreposição FPS
estimatedItemSize ausente - A lista renderiza em branco ou a rolagem salta descontroladamente. Correção: Sempre defina; ajuste contra linhas reais.
Estado da linha em useState dentro de renderItem - Visualizações recicladas mostram seleção obsoleta. Correção: Linhas apenas com props; eleve a seleção para o pai extraData.
renderItem instável em linha - Nova função a cada renderização pai anula o memo. Correção:useCallback com dependências estáveis.
Assumindo paridade total da API FlatList - Algumas props de ponta diferem. Correção: Teste numColumns, rolagem aninhada e cabeçalhos no dispositivo.
Migrando listas de configurações de 8 linhas - Custo de ajuste de estimativa sem ganho. Correção: Mantenha FlatList até que o profiling prove a necessidade.
Fixa uma versão compatível para o seu SDK. Reconstrua o cliente de desenvolvimento se o autolinking mudar.
Qual deve ser o estimatedItemSize?
Meça 5–10 linhas representativas - use a altura mediana. Inclua padding e separadores. Estimativas incorretas causam saltos na rolagem, não travamentos.