首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vuex引用未返回正确的值

Vuex引用未返回正确的值
EN

Stack Overflow用户
提问于 2020-04-09 02:18:20
回答 1查看 64关注 0票数 0

我在一个对象中引用一个VueX getter,如下所示:

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

store getter如下所示:

代码语言:javascript
复制
getters : {
    activeLayer : state => state.views[state.activeView].layers[state.views[state.activeView].activeLayer]
}

然后,我使用手表来监视更改:

代码语言:javascript
复制
created {
    var that = this;
    this.$store.watch( function(state) {return state.views[state.activeView].activeLayer}, 

        function() {
            console.log(that.activeLayer); // Returns initial value
            that.$store.state.views[this.$store.state.activeView].layers[this.$store.state.views[this.$store.state.activeView].activeLayer]; // Returns correct value
        }

    ,{ deep: true } )
}

问题是,当存储更改时,activeLayer不会更新为新值。

如何强制activeLayer更新?

EN

回答 1

Stack Overflow用户

发布于 2020-04-09 02:24:12

尝试使用mapState,并观察更改情况如下所示:

代码语言:javascript
复制
import { mapState } from 'vuex';
代码语言:javascript
复制
computed: { ...mapState(['activeLayer']), }
代码语言:javascript
复制
watch: {
     activeLayer(newValue, oldValue) {
          console.log(newValue);
     }
},
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61107382

复制
相关文章

相似问题

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