useFirestoreCollection triggers a double render
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- javascript, react
Direção de pesquisa
Comece reproduzindo o comportamento com o caso de teste useFirestoreCollection e compare-o com o comportamento semelhante de useUser. Inspecione os pontos de entrada desses hooks para determinar por que buscar com Suspense faz com que console.log seja executado duas vezes. O trabalho estará concluído quando a busca de dados produzir uma renderização, enquanto as renderizações posteriores ocorrerem apenas quando a collection for alterada.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Hi,
Seems like useFirestoreCollection always triggers unnecessary render when fetching data (suspense is on). Similar behavior is also the case for useUser.
There's a chance I'm simply using the API wrong, so please advise if so :)
Version info
React: 17.0.2
Firebase: 9.1.3
ReactFire: 4.2.0
Test case
const q = /* whatever query */;
const queryResults = useFirestoreCollection(q);
console.log(queryResults);
Expected behavior
console.log is called once.
Actual behavior
console.log is called twice.
Ultimately, what I'm trying to achieve is a code similar to the one below
const queryResults = useFirestoreCollection(query);
return queryResults.data.docs.map((d) => /* render */);
that renders only once when the data is fetched (and then only when there're changes in the collection).
- Linguagem predominante
- TypeScript
- Estrelas
- 3.6k
- Forks
- 403
- Merge médio
- 5d 1h
- PRs com merge (30d)
- 10
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de FirebaseExtended/reactfire
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 38/100
FirebaseExtended/reactfire#801 ·
-
v5
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
FirebaseExtended/reactfire#793 ·
-
v5
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
FirebaseExtended/reactfire#790 · 2 comentários ·
-
v5
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 55/100
FirebaseExtended/reactfire#789 ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
FirebaseExtended/reactfire#788 ·
Todas as issues de FirebaseExtended/reactfire
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
bcgov/bc-wallet-mobile#4761 · 1 comentário ·
-
external-issue to-triage
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
-
area-deployment area-integrations triage:bot-seen
Dificuldade 2/5 Meio dia Facilidade para iniciantes 86/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
-
refactor
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100