useOptimistic
React 🟡 MidDéfinition
Hook stable depuis React 19 (5 décembre 2024) qui affiche un état optimiste pendant qu'une Action est en cours. Si l'Action échoue, React revient automatiquement à la valeur réelle ; si elle réussit, état optimiste et état réel convergent dans le même rendu, sans rendu supplémentaire.
Analogie
Comme cocher 'lu' sur un message avant que le serveur confirme : si ca échoué, la coche disparaît.
Exemple de code
const [optimisticLikes, addOptimistic] = useOptimistic(
likes,
(state, newLike) => [...state, newLike]
);
function handleLike() {
startTransition(async () => { // obligatoire : dans une Action
addOptimistic({ id: 'temp', user: 'moi' });
await saveLike(); // échec => retour à `likes`
});
}
Cas d'usage
Likes, commentaires, toggles : feedback instantané a l'utilisateur pendant la requête serveur.
Anti-pattern
Appeler le setter optimiste hors d'une Action (startTransition ou prop action) : React affiche un avertissement et l'état optimiste ne se comporte pas comme prévu.
Termes liés
Fiche mise à jour le 2026-09-27