我使用vue与vuex vue的webpack模板,我基本上与组件状态不更新的问题。Vue.js/vuex ajax更新组件与阿贾克斯状态
我有一个商店
const state = {
userData: {},
}
在我的应用我有一个方法
methods: {
addUserData: function() {
const that = this;
axios.get('URL').then(function (response) {
let obj = response.data;
that.$store.commit('addUserData', {obj});
});
},
我打电话的时候,它的安装
mounted() {
this.addUserData();
},
这与突变更新
const mutations = {
addUserData(state, {obj}) {
state.userData = obj;
},}
一切都很好,直到这里,数据进入商店罚款。但后来我有一个组件没有工作,因为它不会等待ajax完成加载,也不会以任何方式绑定。我很可能在这里做不对,但基本上在我的组件我有
data() {
return {
weekData : {
weekDataList: []....
methods: {
tester: function(a) {
// Sorting the userdata using lowdash
this.weekData.weekDataList = _.values(this.$store.state.userData);
},
},
我把这种以同样的方式,因为我之前做过
mounted() {
this.tester();
},
的问题是,this.weekData.weekDataList总是返回一个空数组,因为商店中的userData尚未完成。我有几十种执行各种计算的方法,都基于这一个数组,所以如果一个失败,他们都会失败。
也许我的方法是错误的,但理想情况下,我希望更新商店后更新数据属性?我试着用计算属性来做这件事,并且{{whatever}}正常工作,但不知道如何更新组件数据。
2017-04-04
webknit