Rumah > hujung hadapan web > View.js > teks badan

Cara menggunakan getCurrentInstance dalam Vue3 dengan ts

王林
Lepaskan: 2023-05-15 22:37:04
ke hadapan
2281 orang telah melayarinya

getCurrentInstance digunakan dalam kombinasi dengan ts

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

const { proxy } = getCurrentInstance()
Salin selepas log masuk

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
    }
}
Salin selepas log masuk

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>
Salin selepas log masuk

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; });
Salin selepas log masuk

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;)
Salin selepas log masuk

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

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan