Vue: Cannot read property of undefined
Vue.jsでundefinedのプロパティにアクセスしようとした際のエラー
概要
Vue.jsでコンポーネントのデータやpropsがundefinedの状態でプロパティにアクセスしようとした場合に発生するエラーです。
エラーメッセージ
TypeError: Cannot read properties of undefined (reading 'name')
原因
- 非同期データの初期状態: APIからのデータ取得前にアクセス
- propsが未定義: 親コンポーネントからpropsが渡されていない
- ネストしたオブジェクトへのアクセス: 中間のオブジェクトがundefined
解決策
1. オプショナルチェイニングを使用
| |
2. v-if でガード
| |
3. データの初期値を設定
| |
4. computed でデフォルト値
| |
5. props のデフォルト値
| |
6. watch でデータ変更を監視
| |
よくある間違い
- createdフック内でDOMにアクセス(mountedを使うべき)
- 非同期処理の完了前にデータを使用
- リアクティブでないオブジェクトのプロパティ変更
Vue.js の他のエラー
この記事は役に立ちましたか?