Vue アプリケーションでは、状態管理に vuex を使用するのが非常に一般的です。ただし、vuex を使用すると、「TypeError: null のプロパティ 'xxx' を読み取れません」やその他のエラーなど、いくつかの問題が発生することがあります。この問題は通常、状態でプロパティを使用し、プロパティの値が null または未定義の場合に発生します。この記事ではこの問題を解決する方法を紹介します。
vuex を使用する際、state に特定の属性が定義されている場合、それを使用する前にそれを判断する必要があります。それが存在します。 Vue で提供されている特別なメソッド $store.getters を使用すると、状態内のプロパティを簡単に取得し、取得する前に判断することができます。取得したプロパティがnullまたは未定義の場合、デフォルト値を返すか、対応する処理を実行できます。
次の例を見てみましょう:
属性ユーザー名が状態で定義されています:
state: { username: null },
この属性をコンポーネントで使用します:
<template> <div> <p>{{ $store.getters.username || '默认值' }}</p> </div> </template>
属性がnullまたは未定義の場合は、デフォルト値または「null」が返されます。
vuex では、ミューテーションが状態を変更する唯一の方法です。状態のプロパティが null または未定義でないことを保証するために、ミューテーションの状態にデフォルト値を割り当てることができます。ミューテーションを呼び出すとき、状態の属性が null または未定義の場合、それをデフォルト値に割り当てるか、ミューテーションを通じてそれに応じて処理します。
次の例を考えてみましょう:
状態で属性ユーザー名を定義します:
state: { username: null },
ミューテーションでユーザー名にデフォルト値を割り当てます:
mutations: { setUsername(state, username) { state.username = username || '默认值'; } }
突然変異では、ユーザー名が null または未定義の場合、デフォルト値または「null」が割り当てられます。
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 サイトの他の関連記事を参照してください。