Problèmes runtime fréquents et corrections
Dépannage
invalidateQueries ne rafraîchit pas la table
Symptômes
- La mutation réussit.
- Vous appelez
invalidateQueries. - La table affiche toujours des données obsolètes.
Cause racine
Des instances différentes de QueryClient sont utilisées (caches isolés).
Correctif
- Assurez-vous d'avoir un
QueryClientProviderpartagé unique au niveau app. - Invalidez la clé
["tableData", tableId]. - Ne passez pas de prop
queryClientdifférente de l'instance du provider.
await queryClient.invalidateQueries({
queryKey: ["tableData", "products"],
});La confirmation bulk ne fait rien (copy/delete)
Symptômes
- L'utilisateur clique sur
CopyouDelete. - La boîte de dialogue de confirmation s'ouvre.
- Cliquer sur
Confirmsemble ne rien faire.
Cause racine
Une action en attente a été réinitialisée par le comportement de clic externe pendant que le portail de dialogue était ouvert.
Correctif dans la version actuelle
- Les clics externes sont ignorés tant que la confirmation est ouverte.
- L'exécution de la confirmation est protégée par verrou et s'exécute une seule fois.
- Les callbacks bulk doivent retourner un
BulkActionResultexplicite pour un comportement déterministe (fermeture/sélection).
type BulkActionResult = {
success: boolean;
closeMenu: boolean;
clearSelection: boolean;
message?: string;
};