Vue アプリケーションで vuex を使用しているときに「TypeError: Cannot read property 'xxx' of null」というメッセージが表示された場合はどうすればよいですか?

WBOY
リリース: 2023-08-20 22:30:29
オリジナル
1501 人が閲覧しました

在Vue应用中使用vuex时出现“TypeError: Cannot read property \'xxx\' of null”怎么办?

Vue アプリケーションでは、状態管理に vuex を使用するのが非常に一般的です。ただし、vuex を使用すると、「TypeError: null のプロパティ 'xxx' を読み取れません」やその他のエラーなど、いくつかの問題が発生することがあります。この問題は通常、状態でプロパティを使用し、プロパティの値が null または未定義の場合に発生します。この記事ではこの問題を解決する方法を紹介します。

  1. state 属性が存在するかどうかを判断する

vuex を使用する際、state に特定の属性が定義されている場合、それを使用する前にそれを判断する必要があります。それが存在します。 Vue で提供されている特別なメソッド $store.getters を使用すると、状態内のプロパティを簡単に取得し、取得する前に判断することができます。取得したプロパティがnullまたは未定義の場合、デフォルト値を返すか、対応する処理を実行できます。

次の例を見てみましょう:

属性ユーザー名が状態で定義されています:

state: {
    username: null
},
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

この属性をコンポーネントで使用します:

<template>
    <div>
        <p>{{ $store.getters.username || '默认值' }}</p>
    </div>
</template>
ログイン後にコピー

属性がnullまたは未定義の場合は、デフォルト値または「null」が返されます。

  1. ミューテーションの状態にデフォルト値を割り当てる

vuex では、ミューテーションが状態を変更する唯一の方法です。状態のプロパティが null または未定義でないことを保証するために、ミューテーションの状態にデフォルト値を割り当てることができます。ミューテーションを呼び出すとき、状態の属性が null または未定義の場合、それをデフォルト値に割り当てるか、ミューテーションを通じてそれに応じて処理します。

次の例を考えてみましょう:

状態で属性ユーザー名を定義します:

state: {
    username: null
},
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ミューテーションでユーザー名にデフォルト値を割り当てます:

mutations: {
    setUsername(state, username) {
        state.username = username || '默认值';
    }
}
ログイン後にコピー

突然変異では、ユーザー名が null または未定義の場合、デフォルト値または「null」が割り当てられます。

  1. ES6 のデフォルト パラメータ属性を使用する

ES6 では、デフォルト パラメータ属性を使用してメソッド パラメータのデフォルト値を設定できます。 vuex では、この機能を使用して、状態のプロパティが null または未定義でないことを確認できます。

次の例を見てみましょう:

属性ユーザー名が状態で定義されています:

state: {
    username: null
},
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ES6 のデフォルト パラメーター機能をミューテーションで使用します:

mutations: {
    setUsername(state, username = '默认值') {
        state.username = username;
    }
}
ログイン後にコピー

ミューテーションを呼び出すとき、ユーザー名が null または未定義の場合、デフォルト値または「null」が割り当てられます。

要約すると、Vue アプリケーションで vuex を使用し、「TypeError: null のプロパティ 'xxx' を読み取れません」などの問題が発生した場合、state 属性が存在するかどうかを判断し、ミューテーションでそれを与えることができます。 stateにデフォルト値を割り当てる、ES6のデフォルトパラメータ機能を利用するなどの方法で問題を解決できます。この記事が皆さんのお役に立てば幸いです。

以上がVue アプリケーションで vuex を使用しているときに「TypeError: Cannot read property 'xxx' of null」というメッセージが表示された場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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