[英]Getting a Vue warning TypeError: Cannot read property of undefined but the data is present
I am getting the following errors: 我收到以下错误:
[Vue warn]: Error in nextTick: "TypeError: Cannot read property 'itemName' of undefined"
found in
---> <AssetEditForm> at src\components\AssetEditForm.vue
<AppSection> at src\components\AppSection.vue
<MyAssets> at src\views\Assets.vue
<App> at src\App.vue
<Root>
and 和
vue.runtime.esm.js?2b0e:1737 TypeError: Cannot read property 'itemName' of undefined
at VueComponent.itemName (AssetEditForm.vue?6bb7:218)
at Watcher.get (vue.runtime.esm.js?2b0e:3138)
at Watcher.evaluate (vue.runtime.esm.js?2b0e:3245)
at VueComponent.computedGetter [as itemName] (vue.runtime.esm.js?2b0e:3503)
at VueComponent.eval (AssetEditForm.vue?6bb7:104)
at Array.eval (vue.runtime.esm.js?2b0e:1833)
at flushCallbacks (vue.runtime.esm.js?2b0e:1754)
NB NB
this.itemName
then this.ownership
will trigger the warning, and so on Created()中的所有项目都会引发此警告,即如果我删除this.itemName
则this.ownership
将触发该警告,依此类推 AssetEditForm AssetEditForm
props: {
myAssets:{},
assetId:{
type: String
},
},data: function () {
return {
isShown: this.showForm,
myAssetId: this.assetId,
assetName: '',
assetOwnership: '',
assetOwnershipPercentage: '',
assetEstimatedValue: '',
typePlural: this.type + '\'s',
typeLowerCase: this.type.toLowerCase(),
// assetIdIs: '',
}
},
created: function () {
this.$nextTick(function () {
console.log('created');
this.assetName = this.itemName;
this.assetOwnership = this.ownership;
this.assetOwnershipPercentage = this.ownershipPercentage;
this.assetEstimatedValue = this.estimatedValue;
})
},
computed: {
getAssetId: function() {
const myInfo = this.myAssets;
return myInfo.find(x => x.id == this.assetId);
},
itemName: function() {
return this.getAssetId.itemName
},
ownership: function() {
return this.getAssetId.ownership
},
ownershipPercentage: function() {
return this.getAssetId.ownershipPercentage
},
estimatedValue: function() {
return this.getAssetId.estimatedValue
},
},
The problem might be the computed property for itemName
. 问题可能是itemName
的计算属性。 If this.myAssets
is empty or does not contain the correct item find()
in getAssetId
returns undefined ( https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/find ). 如果this.myAssets
为空或在getAssetId
中不包含正确的项find()
, getAssetId
返回未定义( https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/find )。 getAssetId
is used in the computed property for itemName
where you are trying access itemName
of undefined. 在试图访问未定义itemName
的itemName
的计算属性中,使用了getAssetId
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.