首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vuex吸气剂在模块内不起作用

Vuex吸气剂在模块内不起作用
EN

Stack Overflow用户
提问于 2020-08-07 19:28:40
回答 1查看 1K关注 0票数 0

我在Vuex舱里有个吸气器。我用mutator改变值,状态属性改变,但是getter属性仍然是一样的,它没有反应。

然后,当我试图将吸气剂移到主要的Vuex商店时,它是反应性的,而且工作正常。我不知道为什么模块没有反应?

这里是Vuex商店:

代码语言:javascript
复制
import {mymodule} from './vuex-modules' 
  
export default new Vuex.Store({ 
    modules: {  mymodule }, 
    getters: {},
    mutations: {
        updateState(state, payload) { 
            this.state[payload.stateName] = payload.newValue;
        },
    }, 
})

和模块:

代码语言:javascript
复制
export const mymodule = { 
    state: {  
        myproperty: ['defaultvalue']              //<-- the property is in the module's state
    },
    getters: {  
        myproperty: state => state.myproperty      //<-- getting myproperty from local state
    }, 
}

在组件中,我有一个带有mapGetters的计算属性:

代码语言:javascript
复制
computed: {
      ...mapGetters({ 
         myproperty: 'myproperty'
    }),

我从组件中提交(在突变中调用updateState ):

代码语言:javascript
复制
 let object = { stateName: 'myproperty', newValue:'newelement' }  
 this.$store.commit('updateState', object);

Vuex状态更改,但计算的属性不变。

我可以简单地将getter从模块移动到Vuex商店:

代码语言:javascript
复制
export default new Vuex.Store({

    modules: { mymodule }, 
    getters: {
        myproperty: state => state.myproperty
    },

现在它起作用了,计算属性myproperty取而代之的是“Now”。有什么问题吗?

更新

所以我不能在突变中使用this.state[payload.stateName],我必须指定它位于哪个模块中。但我怎样才能使它充满活力呢?我以为它就像混合器,在那里被合并在一起。

是否有一种方法可以针对mutator中的状态属性,而不必指定它可能在其中的模块?

否则,我就不能有一个对主状态和模块都很常见的mutator。

EN

回答 1

Stack Overflow用户

发布于 2020-08-07 22:56:32

我现在已经了解到,mutator没有访问模块的属性,它只是访问它自己的状态属性。因此,当目标属性在模块内时,它正在向主状态添加一个新属性。

所以这个:

代码语言:javascript
复制
mutations: {
 updateState(state, payload) {
            
      state[payload.stateName] = payload.newValue;
 },

应:

代码语言:javascript
复制
state.mymodule[payload.stateName] = payload.newValue;

所以我想这就是事情发生的原因。但我有一些东西要加在编辑问题上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63308106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档