问题描述:
vuex $store.state的值能获取,但是里面具体的值就获取不到
原因:
对象变量都是对象在内存中的地址值,普通数据变量是实际的值。所以打印的那个对象其实在打印的那一刻是空对象,但是展开的时候,commit操作已经完成,所以对象被扩展为期望看到的值。但是普通类型打印的那一刻是什么就是什么。
解决办法:
使用commit往state里存对应数据,通过getters取数据
/* eslint-disable */
// store部分
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
export default new Vuex.Store({
state: {
info: {},
},
getters: {
info(state) {
return state.info;
},
},
mutations: {
SET_INFO(state, payload) {
state.info = payload;
window.console.log('setinfo', state.info, payload);
},
},
});
// 存数据
this.$store.commit('SET_INFO', arrObject);
// 取数据
import { mapGetters } from 'vuex';
computed: {
...mapGetters({
info: 'info',
}),
},