ホームページ > ウェブフロントエンド > Vue.js > Vue3 で ts を使用して getCurrentInstance を使用する方法

Vue3 で ts を使用して getCurrentInstance を使用する方法

王林
リリース: 2023-05-15 22:37:04
転載
2322 人が閲覧しました

getCurrentInstance は ts と組み合わせて使用​​されます

vue3 プロジェクトでは、ts なしで使用しても問題ありません

const { proxy } = getCurrentInstance()
ログイン後にコピー

ts で使用すると、エラーが報告されます: Error:。 ..「ComponentInternalInstance | null」と入力します。

通常、プロジェクトでは多くの getCurrentInstance() メソッドを使用し、それらを直接カプセル化します。

useCurrentInstance.ts ファイルを作成します:

import { ComponentInternalInstance, getCurrentInstance } from 'vue'
export default function useCurrentInstance() {
    const { appContext } = getCurrentInstance() as ComponentInternalInstance
    const proxy = appContext.config.globalProperties
    return {
        proxy
    }
}
ログイン後にコピー

Useコンポーネント内:

<script lang="ts">
import { defineComponent } from "vue";
import useCurrentInstance from "@/utils/useCurrentInstance";
export default defineComponent({
  setup() {
    const { proxy } = useCurrentInstance();
    console.log(proxy);
  },
});
</script>
ログイン後にコピー

vue3 getCurrentInstance 使用時に ts がエラーを報告する

vue3 には this がありません。さまざまな API メソッド

Vue3 には、これと同様のインスタンスを作成するメソッドが用意されています。

const instance = getCurrentInstance() 

const a1= getCurrentInstance();
a1.$toast({type: &#39;error&#39;, text: &#39;登录失败&#39; });
ログイン後にコピー

これはローカル デバッグにのみ適しています。オンラインで実行するとエラーが報告されます。エラーの詳細は次のとおりです:

属性「プロキシ」がタイプ「ComponentInternalInstance | null」に存在しません。 」。 ts(2339)

このエラーは以下で報告されます

安全でないメンバーは、「任意」の値で .$axios にアクセスします。eslint@typescript-eslint/no-unsafe-member - access

「任意の」型指定値の安全でない呼び出し。eslint@typescript-eslint/no-unsafe-call

理由:

getCurrentInstance() の戻り値の型は null なので、ここにアサーションを追加するだけです。

プロキシの後に ? を追加して、null 結果をフィルタリングします。つまり:

const instance = getCurrentInstance()?.proxy  
 instance ?.$toast(&#39;请xxx!&#39;)
ログイン後にコピー

以上がVue3 で ts を使用して getCurrentInstance を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート