异步操作后,vuex值未变

在state里面初始化一个对象。

// 初始化数据
travellerInfo: {
    after: {
        address: {},
        temporary: {
            people: {
                data: [],
                ids: [],
            },
            stroke: {
                data: {},
                complete: '',
            },
            take: {
                data: {},
                ids: {},
            },
            address: {
                data: {},
                ids: [],
            },
        },
        traveler: {},
    },
},


// 提交数据
commit('setTravellerInfo', this.state.travellerInfo);
setTravellerInfo(state, payload) {
    state.travellerInfo = payload;
},

当数据异步请求回来后,vuex里面的data字段变了,但是ids字段未变。后端接口是有数据的。

// vue调试工具的显示
clipboard.png

// 后端数据ids是有值的。但是vuex里面赋值却显示初始值

clipboard.png

阅读 1.8k
2 个回答

赋值问题,自己代码bug。
另外推荐下lodash的合并方法:

this.state.travellerInfo = _.merge({}, this.state.travellerInfo, res);

至少把关键代码贴一下吧。应该是你在处理后端返回的数据中,出错了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题