Vuex 存儲狀態:如何將函數與變量混合以在單次重置狀態值

蝙蝠俠_2008

我有一個Vuex Store需要根據應用程序中的一些更改重置變量的地方,所以我使用的是這樣的東西,一切都按預期工作:

const getDefaultState = () => {
    return {
        showModal: false,
        nodeCounter:0,
        nodeInfo: [],
    }
}

export const state = () => getDefaultState()

export const mutations = {
  resetState (state) {
    // Reset all state variables to its default value for next node
    Object.assign(state, getDefaultState())
  },
}

但是,根據新要求,我不希望重置nodeCounter並希望它具有增量值而是reset所有其他值,因此我想做這樣的事情:

const getDefaultState = () => {
    return {
        showModal: false,
        nodeInfo: [],
    }
}

export const state = () => {
    nodeCounter:0,
    getDefaultState()
}

所以我所有的其他值都將是resetnodeCounter只有在我刷新應用程序時才會重置。但我無法做到這一點。

有人可以讓我知道如何重置一些state變量而不重置其中的一些嗎?我不想一個一個地重置狀態變量,所以我使用了function這裡的一些答案中提到方法。

木馬

我會嘗試保存 nodeCounter 的狀態(您要保留),然後在將狀態設置為默認值後進行設置。像這樣的東西:

const getDefaultState = () => {
    return {
        showModal: false,
        nodeCounter:0,
        nodeInfo: [],
    }
}

export const state = () => getDefaultState()

export const mutations = {
  resetState (state) {
    // Reset all state variables to its default value for next node
    const tmpNodeCounter = state.nodeCounter;
    state = {...getDefaultState(),nodeCounter: tmpNodeCounter};
  },
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章