如何从另一个数据属性引用Vue数据属性

时间:2018-07-02 18:42:39

标签: vue.js

我正在学习Vue.JS,所有尝试从 currentDashboard 数据表达式中引用 dashboards 属性的尝试都导致“未定义仪表板”。 Vue是否以某种方式在 dashboards 之前先评估 currentDashboard 表达式,还是我需要一些限定词来引用它,这无济于事?

vue = new Vue({
el: '#dashboard',
data: {
    dashboards: store.getDashboards(),
    currentDashboard: dashboards[0],
}

})

2 个答案:

答案 0 :(得分:2)

我认为一种解决方案是可以使用computed方法,因为dashboards[0]不在同一created周期中定义。试试类似的东西:

data: {
    dashboards: store.getDashboards(),
},
computed: {
  currentDashboard: function () { return this.dashboards[0] }
}

通过这种方式,可以在调用currentDashboard时定义变量,而不必为此变量重构Vue.js调用。

编辑: 是的,如果您想知道为什么,正如Joel所指出的那样,您可以在官方文档中阅读:

  

如果您知道以后需要一个属性,但是它开始为空或   不存在,则需要设置一些初始值。

在这种情况下,data()方法以队列中的所有值开始,而不分配它,为此,起始值为undefined。 此处:https://vuejs.org/v2/guide/instance.html

希望有帮助!

答案 1 :(得分:1)

您可以在返回 dashboard 属性之前创建 data 变量,以便您可以在 data 属性中多次使用它。

vue = new Vue({
el: '#dashboard',
data() {
    let dashboard = store.getDashboards()
    dashboards: dashboard,
    currentDashboard: dashboard[0],
}

希望对你有帮助