【问题标题】:Vuex whole state assignVuex 整个状态分配
【发布时间】:2020-11-20 00:02:21
【问题描述】:

我正在使用 Nuxt 和 Vuex,我正在尝试将整个命名空间状态分配给某个值,是否可以分配整个状态?还有另一种方法可以拥有命名空间模块,但将单个值分配给命名空间状态?

我所说的突变的一些例子

const mutations = {
  [SET_LOCATION](state, location) {
    state = { ...location }
  }
}

const mutations = {
  [SET_CURRENCY](state, currency) {
    switch(currency) {
      case 'MXN':
      case 'EUR':
        state = currency
        break
      default: 
        state = 'USD'
    }
  }
}

但是,当这些突变被执行时,它们并没有分配值,我一直在尝试分配值,但它仅在我为命名空间状态的属性分配新值时才有效。

【问题讨论】:

    标签: nuxt.js vuex vuex-modules


    【解决方案1】:

    但它仅在我为命名空间状态的属性分配新值时才有效

    这是有原因的。 Vue 有反应性警告。 来自Docs

    Vue 无法检测属性添加或删除。由于 Vue 在实例初始化期间执行 getter/setter 转换过程,因此数据对象中必须存在一个属性,以便 Vue 对其进行转换并使其具有响应性。

    为避免此问题,请确保在初始化存储时在“状态”对象中声明所有键

    例如:

    
    state = {locationState:null}
    // Make the store with the state
    const mutations = {
      [SET_LOCATION](state, location) {
        state.locationState = location 
      }
    }
    

    让我知道这是否适合你。

    【讨论】:

      猜你喜欢
      • 2020-02-08
      • 1970-01-01
      • 2021-06-19
      • 2020-11-24
      • 2023-03-16
      • 2017-07-28
      • 2018-01-03
      • 1970-01-01
      • 2018-08-09
      相关资源
      最近更新 更多