Vuex:如何使用基于另一个状态变量的值定义状态变量?

时间:2018-09-25 19:00:34

标签: vue.js vuex

在我的store中,我需要同时拥有当前周(常数)和一个初始等于当前周的变量,该变量可能会因突变而改变:

export default new Vuex.Store({
  state: {
    thisWeek: moment().startOf('isoWeek'),
    currentWeek: thisWeek
  }
});

我明白了

  

thisWeek未定义

尽管该如何解决?

(奖励:没有办法在Vuex中区分变量和常量吗?)

2 个答案:

答案 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以获得更多详细信息