【发布时间】:2017-12-07 18:59:21
【问题描述】:
我有一个 vuex getter,它从我的状态中获取数组的值。
import Vue from 'vue'
import Vuex from 'vuex';
Vue.use(Vuex);
export const store = new Vuex.Store({
state: {
tableRow: [
{
"name": 1,
"numSongs": 2,
"Year": 3
}
]
},
getters:{
tRow : state => {
return state.tableRow
}
}
});
我有一个函数,它从表行中获取值并将其值设置为我的 getter 计算属性。
$("#table1 tr").click(function () {
var list = [];
var $row = $(this).closest("tr"),
$tds = $row.find("td");
list.push({ name: $tds.eq(0).text(), numSongs: $tds.eq(1).text(), Year: $tds.eq(2).text() });
// self.$store.state.tableRow = list;
this.tabRow = list;
console.log(this.tabRow);
self.passData();
});
});
},
computed: {
tabRow(){
return this.$store.getters.tRow;
}
},
然后在我的另一个路由组件中,我设置了相同的计算属性,然后尝试在模板中调用它,但它输出的值是我给它的默认值。
mounted: function () {
var self = this;
console.log(this.tabRow)
// self.passedRow = self.$store.state.tableRow;
self.passedRow = this.tabRow;
this.startDoughnut(this.$refs.canvas, 'Doughnut');
},
computed: {
tabRow(){
return this.$store.getters.tRow;
}
我对 vuex 的效率还不够高,所以我不确定为什么这不起作用,我们将不胜感激。
【问题讨论】:
-
这是this.tabRow = list;你设置的值是什么意思?
-
是的 this.tabRow =list 是我更新 tabrows 值的方式