Maison > interface Web > Voir.js > Comment utiliser getCurrentInstance dans Vue3 avec ts

Comment utiliser getCurrentInstance dans Vue3 avec ts

王林
Libérer: 2023-05-15 22:37:04
avant
2357 Les gens l'ont consulté

getCurrentInstance est utilisé en combinaison avec ts

Dans le projet vue3, si vous l'utilisez sans ts, ce n'est pas un problème

const { proxy } = getCurrentInstance()
Copier après la connexion

Si vous l'utilisez dans ts, une erreur sera signalée : Erreur :...Tapez "ComponentInternalInstance | null"

Nous faisons généralement cela dans le projet De nombreuses méthodes getCurrentInstance() sont utilisées, encapsulez-les directement

Créez le fichier useCurrentInstance.ts :

import { ComponentInternalInstance, getCurrentInstance } from 'vue'
export default function useCurrentInstance() {
    const { appContext } = getCurrentInstance() as ComponentInternalInstance
    const proxy = appContext.config.globalProperties
    return {
        proxy
    }
}
Copier après la connexion

Utilisez dans le composant :

<script lang="ts">
import { defineComponent } from "vue";
import useCurrentInstance from "@/utils/useCurrentInstance";
export default defineComponent({
  setup() {
    const { proxy } = useCurrentInstance();
    console.log(proxy);
  },
});
</script>
Copier après la connexion

vue3+ts utilisez getCurrentInstance pour signaler un error

vue3 n'a pas cela + diverses méthodes API

vue3 Méthode fournie pour créer une instance similaire à celle-ci.

const instance = getCurrentInstance() 

const a1= getCurrentInstance();
a1.$toast({type: &#39;error&#39;, text: &#39;登录失败&#39; });
Copier après la connexion

Ceci ne convient qu'au débogage local. Lors de l'exécution en ligne, une erreur sera signalée :

L'attribut "proxy" n'existe pas sur le type "ComponentInternalInstance | null". ts(2339)

Ensuite, cette erreur sera signalée ci-dessous

Accès membre non sécurisé .$axios sur une valeur `any` eslint@typescript-eslint/no-unsafe-member-access

Appel non sécurisé d'un `any'. ` valeur saisie. eslint@typescript-eslint/no-unsafe-call

Raison : Le type de retour de getCurrentInstance() est nul, ajoutez donc simplement une assertion ici.

Ajoutez ? après le proxy pour filtrer les résultats nuls, c'est-à-dire :

const instance = getCurrentInstance()?.proxy  
 instance ?.$toast(&#39;请xxx!&#39;)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal