Rumah  >  Artikel  >  hujung hadapan web  >  Cara menggunakan getCurrentInstance dalam Vue3 dengan ts

Cara menggunakan getCurrentInstance dalam Vue3 dengan ts

王林
王林ke hadapan
2023-05-15 22:37:042169semak imbas

getCurrentInstance digunakan dalam kombinasi dengan ts

Dalam projek vue3, tidak mengapa untuk menggunakannya seperti ini tanpa ts

const { proxy } = getCurrentInstance()

Jika digunakan dalam ts, ralat akan dilaporkan: Ralat :... Taip "ComponentInternalInstance | null"

Kami biasanya menggunakan banyak kaedah getCurrentInstance() dalam projek kami, cuma merangkumnya secara terus

Buat fail useCurrentInstance.ts:

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

Gunakan dalam komponen:

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

vue3+ts menggunakan getCurrentInstance untuk melaporkan ralat

Tiada ini + pelbagai kaedah api dalam vue3

Kaedah yang disediakan oleh vue3 mencipta contoh yang serupa dengan ini.

const instance = getCurrentInstance() 

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

Ini hanya sesuai untuk penyahpepijatan setempat Apabila dijalankan dalam talian, ralat akan dilaporkan:

Atribut "proksi" tidak wujud pada jenis "ComponentInternalInstance | null". ts(2339)

Kemudian ralat ini akan dilaporkan di bawah

Akses ahli tidak selamat .$axios pada nilai `sebarang` eslint@typescript-eslint/no-unsafe-member - akses

Panggilan tidak selamat bagi nilai taip `sebarang` eslint@typescript-eslint/no-unsafe-call

Punca:

<.>Jenis pemulangan getCurrentInstance() adalah batal, jadi cuma tambahkan penegasan di sini.

Tambah ? selepas proksi untuk menapis hasil nol, iaitu:

const instance = getCurrentInstance()?.proxy  
 instance ?.$toast(&#39;请xxx!&#39;)

Atas ialah kandungan terperinci Cara menggunakan getCurrentInstance dalam Vue3 dengan ts. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam