在我的store
中,我需要同时拥有当前周(常数)和一个初始等于当前周的变量,该变量可能会因突变而改变:
export default new Vuex.Store({
state: {
thisWeek: moment().startOf('isoWeek'),
currentWeek: thisWeek
}
});
我明白了
thisWeek
未定义
尽管该如何解决?
(奖励:没有办法在Vuex
中区分变量和常量吗?)
答案 0 :(得分:2)
您不能以这种方式使用状态属性。
如果只想用相同的值初始化两个属性,为什么不先创建该值,将其存储在本地变量中,然后将其分配给两个变量呢?
关于常量:store属性始终是可变的。您可以通过原始JavaScript(const
)创建常量并将其导入,或者,如果要使用完整的Vuex,则可以创建一个返回常量值的Vuex getter。
答案 1 :(得分:1)
您可以使用以下属性定义state
:
const thatWeek= moment().startOf('isoWeek')
const state= {
thisWeek: thatWeek,
currentWeek: thatWeek
}
const mutations = {
}
export default new Vuex.Store({
state:state,
mutations:mutations
});
假设您已经正确导入了moment
,但是您必须知道在javascript中无法将object属性设置为const
,但是可以通过不对其进行更改来使其保持不变,可以参考此question以获得更多详细信息