我需要用vuex储存一个对象, 外部通过getters获取.
该对象会在每日24点过期, 然后重新定义这个对象.
但是我无法在getters里面获取stroe, 也就无法使用store.commit.
我这种写法有什么问题, 需要怎么修改?
谢谢!
export default new Vuex.Store {
strict: process.env.NODE_ENV !== 'production',
state: {
timeInfo: {}
},
getters: {
timeList: state => {
let date = new Date(new Date().toLocaleDateString()).getTime();
if (date === state.timeListInfo.date) {
return timeListInfo.list
} else {
// 我想在这里重写timeInfo, 但是下面的写法不成功
// this.commit('timeInfo' ,{
// date: date,
// list: []
// });
return [];
}
}
},
mutations: {
timeInfo(state, info) {
state.timeListInfo = info;
}
}
}
vuex实则一套发布/订阅罢了,作者的思路是实现一套单向流的状态管理。
源码里并没有提供getters可以访问commit的参数,你可以在actions里做timeList里的事情,然后通过action里的提供的commit参数去修改时间即可