【发布时间】:2017-04-04 10:05:39
【问题描述】:
我正在使用带有 vuex 的 vue webpack 模板,我基本上遇到了组件不随状态更新的问题。
我有一家商店
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 还没有完成。我有几十种方法执行各种计算,都基于这个数组,所以如果一个失败,它们都会失败。
也许我的方法是错误的,但理想情况下,我希望在商店更新后更新数据属性?我尝试使用计算属性执行此操作,并且使用 {{ 不管 }} 可以正常工作,但不确定如何更新组件数据。
【问题讨论】:
标签: javascript vue.js vuex