2017-06-06 283 views
0

引用变量我是新来的Vue并不能找到一个解决这个 -Vue公司JS - 在对象

我在这里有一个JSON对象,我想动态获取“信息”的一个基于他们的“userRegion”的用户。

{ 
"userData": { 
    "kr": { 
     "info": { 
     "name": "testing-123", 
    } 
    }, 
    "any": null, 
    "us": null, 
    "eu": { 
     "info": { 
     "name": "testing-456", 
    } 
    }, 
    }, 
    "userRegion": "eu" 
} 

我然后在VUE此目的,我想动态地改变区域和拉基于在“用户”这一区域值的对象中的数据对象下面。

user:{ 
     region: this.userData.userRegion, 
     name: this.userData[this.user.region].info.name 
    }, 

例如,我一直在使用这样的事情

this.userData.userData[this.user.region] 

尝试,但我得到一个错误:

TypeError: Cannot read property 'region' of undefined" 

变量我使用“用户数据”是从传下来父母像这样:

<infoWindow :userData='userData'></infoWindow> 

和被设置为道具:

props: { 
     userData: app.userData, 
    }, 

任何帮助将aprpeciated,感谢

回答

1

我真的不明白你在哪里设置这个user,无论是它的一个初始化数据对象的一部分,或计算属性。然而,有一个时间的问题有:

user: { 
    region: this.userData.userRegion, 
    name: this.userData[this.user.region].info.name 
}, 

为了建立user.nameuser.region必须已经存在。但是由于您一次创建了user对象,因此这不起作用。所以你要么分割起来,要么重复用户区域的逻辑:

user: { 
    region: this.userData.userRegion, 
    name: this.userData[this.userData.userRegion].info.name 
}, 
+0

对不起,忘了解释它是从api返回的对象!这虽然工作完美 - 谢谢你!谢谢你的解释,现在它变得更有意义:) – user3195250