我正在学习currentDashboard,所有从Vue.JS数据表达式引用仪表板属性的尝试都会导致“仪表板未定义”。Vue是在currentDashboard仪表板之前对表达式进行某种程度的评估,还是需要一些限定符来引用它,这没有帮助?
vue = new Vue({
el: '#dashboard',
data: {
dashboards: store.getDashboards(),
currentDashboard: dashboards[0],
}
})
发布于 2018-07-02 18:50:30
我认为一种解决方案是可以使用computed
方法,因为dashboards[0]
不是在同一个created
周期中定义的。试着做这样的事情:
data: {
dashboards: store.getDashboards(),
},
computed: {
currentDashboard: function () { return this.dashboards[0] }
}
这样,在进行currentDashboard
调用时就定义了变量,并且不必为这个var重构Vue.js调用。
编辑:是的,如果你想知道为什么,在正式文档中,你可以读到:
如果您知道稍后需要一个属性,但它开始为空或不存在,则需要设置一些初始值。
在本例中,data()方法从队列中的所有值开始,而不分配它,为此,起始值为undefined
。这里:https://v2.vuejs.org/v2/guide/instance.html
希望能帮上忙!
发布于 2021-01-12 07:52:56
可以在返回dashboard
属性之前创建data
变量,以便在data
属性中多次使用该变量。
vue = new Vue({
el: '#dashboard',
data() {
let dashboard = store.getDashboards()
dashboards: dashboard,
currentDashboard: dashboard[0],
}
我希望这能帮上忙
https://stackoverflow.com/questions/51142070
复制相似问题