Vue プロジェクトで開発しているときに、「TypeError: Cannot read property 'XXX' of unknown.」のようなエラーが発生することがあります。ページには、ページをレンダリングできず、データを読み込むことができないことが表示されます。その他の問題もございます。この種のエラーは、Vue フレームワークを使用する場合、データ送信、コンポーネント通信、非同期リクエストなどのさまざまなシナリオで発生する可能性があります。この記事では、このエラーの原因と解決策について詳しく説明します。
1. 原因
TypeError: 未定義のプロパティ 'XXX' を読み取れません。さまざまな理由があります。一般的な状況は次のとおりです。
const obj = {}; console.log(obj.xxx); //TypeError: Cannot read property 'xxx' of undefined
axios.get('/api/data').then(res => { const data = res.data; console.log(data.xxx); //TypeError: Cannot read property 'xxx' of undefined }).catch(err => { console.log(err); })
export default { data () { return { list: [] } }, created () { this.timer = setTimeout(() => { this.list = [1, 2, 3]; }, 1000); }, beforeDestroy () { clearTimeout(this.timer); } }
<template> <my-component :list="list"></my-component> </template> <script> import MyComponent from './MyComponent.vue'; export default { components: { MyComponent } } </script>
axios.get('/api/data').then(res => { const data = res.data; if (data) { console.log(data.xxx); } else { console.log('返回的数据为空或者为 undefined'); } }).catch(err => { console.log(err); });
export default { data () { return { list: [] } }, created () { this.timer = setTimeout(() => { if (!this._isDestroyed) { this.list = [1, 2, 3]; } }, 1000); }, beforeDestroy () { clearTimeout(this.timer); this._isDestroyed = true; } }
export default { props: { list: { type: Array, default: () => [] } } }
以上がTypeError: Vue プロジェクトで未定義のプロパティ 'XXX' を読み取れません。どのように対処すればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。