recherche

Maison  >  Questions et réponses  >  le corps du texte

Utiliser useRoute dans Vue3 composable

J'ai un magasin de fichiers/service.js et je souhaite utiliser un routeur.

Je fais ceci :

import { useRoute } from 'vue-router';
const router = useRoute();
function exceptionHandler(error) {
  if (error.response.status === 401) {
    router.push('/user/login');
  } else if (error.response.status === 404) {
    throw new Error(error.response.data.Message || error.message);
  } else {
    router.push('/error');
  }
}

Mais je reçois une erreur non définie lors de l'utilisation de Router.

Remarque : ce n'est pas dans la balise de configuration, il s'agit d'un fichier externe js

P粉937382230P粉937382230452 Il y a quelques jours860

répondre à tous(1)je répondrai

  • P粉982054449

    P粉9820544492023-11-23 10:42:44

    useRoute() ne peut être utilisé que dans les paramètres, alors essayez d'écrire la fonction sous forme de composable comme celui-ci

    import { useRoute } from 'vue-router';
    
    export function useExceptionHandler(){
    
    const router = useRoute();
    
    function exceptionHandler(error) {
      if (error.response.status === 401) {
        router.push('/user/login');
      } else if (error.response.status === 404) {
        throw new Error(error.response.data.Message || error.message);
      } else {
        router.push('/error');
      }
    }
        return {
            exceptionHandler,
        }
    }
    

    Vous pouvez l'utiliser sur votre composant comme ceci

    <script setup>
    
    const { exceptionHandler } = useExceptionHandler();
    
    </script>
    

    répondre
    0
  • Annulerrépondre