在我的模板中,我可以从我的商店获得时间,这很好。它会随着时间的变化而更新。但是当我像这样从状态映射getter时:
computed: {
...mapGetters({
week: "week",
year: "year",
time: "time",
}),
}
week和year的值不会改变。为什么呢?我错过了什么?
但是在模板中这样做是有效的:$store.getter ['week']
我的状态是这样的:
const state = {
time: moment(),
};
动作:
const actions = {
changeTimeToNextWeek(context) {
context.commit("changeTimeToNextWeek");
},
changeTimeToPreviousWeek(context) {
context.commit("changeTimeToPreviousWeek");
},
};
突变:
const mutations = {
changeTimeToNextWeek(state) {
state.time = state.time.add(1, "week");
},
changeTimeToPreviousWeek(state) {
state.time = state.time.subtract(1, "week");
},
};
我的getter是这样的:
const getters = {
week: (state, getters) => {
return getters.time.isoWeek();
},
year: (state, getters) => {
return state.time.isoWeekYear();
},
time: (state, getters) => {
return state.time;
},
};
moment() js不是响应式的,所以请尝试在getter
中使用如下方式时刻(state.time)…
将日期/时间作为字符串保留到time根据您需要的格式进行更改。初始化状态间>随你便。