Vue js - 对象中的引用变量

时间:2017-06-06 18:52:33

标签: javascript json vue.js

我是vue的新手,无法找到解决方案 -

我这里有一个JSON对象,我正在尝试根据用户的" userRegion"动态获取用户的" info" 即可。

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

然后我在vue中有这个对象,我想动态地改变区域并根据" user"中的这个区域值从对象中提取数据。对象如下。

 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"

我正在使用的变量" userData"从父母那里传递下来:

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

并设置为道具:

props: {
        userData: app.userData,
     },

任何帮助都会被指定,谢谢

1 个答案:

答案 0 :(得分:1)

我真的不明白你在哪里设置这个slice,无论它是初始化数据对象的一部分还是计算属性。但是,那里存在一个时间问题:

user

要设置user: { region: this.userData.userRegion, name: this.userData[this.user.region].info.name }, user.name需要已经存在。但是,由于您一次创建user.region对象,这不起作用。因此,您必须将其拆分,或者再次重复用户区域的逻辑:

user