Cara menggunakan getCurrentInstance dalam Vue3 dengan ts

Linda Hamilton
Lepaskan: 2023-05-15 22:37:04
ke hadapan
2159 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:

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: 'error', text: '登录失败' });
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('请xxx!')
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
Isu terkini
Mengapa "ini" ditakrifkan sebagai tidak ditentukan dalam fungsi Vue 3 Sila lihat contoh komponen mudah berikut dalam Vue3: