2017-10-15 4 views
3

Actuellement, j'utilise toujours history.replace qui ne pousse jamais rien sur la pile d'historique. Je fais cela parce que si je pousse et puis déconnecte, mon application permet d'utiliser la flèche de retour du navigateur pour revenir à l'itinéraire précédent et je ne le veux pas. Comment est-ce que je peux manipuler l'histoire de sorte que quand on se déconnecte, je n'ai rien sur la pile d'historique à retourner.Utilisation de BrowserRouter, comment effacer l'historique à la déconnexion

Répondre

1

Vous ne pouvez pas faire cela avec le routeur de réaction parce que vous ne devriez pas faire cela. Si l'utilisateur se déconnecte et retourne à une page où il/elle ne devrait pas voir, une bonne habitude est d'afficher une page d'erreur 403 à la place. Vous pouvez afficher un message indiquant que l'utilisateur n'a pas l'autorisation d'accéder à la page. C'est ce que font la plupart des sites Web parce que c'est mauvais pour supprimer l'historique du navigateur.

Vous pouvez trouver un exemple de page 403 here.

Si, pour une raison quelconque, vous voulez vraiment effacer l'historique, vous pouvez continuer à utiliser .replace mais si l'utilisateur est toujours connecté et veut revenir en arrière, il ne pourra pas. Vous pouvez également ouvrir un nouvel onglet avec l'URL de votre site et fermer celui en cours, mais je ne le recommande pas.