【问题标题】:VUE : state variable undefined when accessing it in data() section through computed mapGetters()VUE:通过计算的 mapGetters() 在 data() 部分访问状态变量时未定义
【发布时间】:2018-02-16 06:53:09
【问题描述】:

我一直在我的解决方案中成功地使用 ...mapGetters,但现在我需要直接在 data() 部分中访问变量,访问时变量似乎没有设置/准备好..

mapGetter 位于 computed:{} 部分..

调试时我注意到 data() 在计算之前运行:所以.. 我需要以某种方式在这里放置手表吗?

代码:

data(){
        return {
            FiltersVisible: false,
            orderList: {
                currentPage: 1,
                totalPages: ordersCount / 20,
                // totalPages:80,
                itemsPerPage: 20
            }
        }
    },
    computed: {
        ...mapGetters(['orders', 'ordersCount'])
        // ...mapGetters(['orders'])
    },

Vue 状态截图(Chrome)

请注意,getter 已正确初始化......

【问题讨论】:

  • 您的问题解决了吗? @Terje
  • 是的,我做到了 :) 很久以前了,所以我不记得确切的解决方案是什么 :)

标签: vue.js vuejs2 vuex


【解决方案1】:

有很多方法可以解决这个问题。您可以创建一个 Vuex getter,它为您提供一个空值或默认值开始。这至少可以确保没有错误,并且会在您的商店启动时更新。

您可以创建一个本地计算属性并使用 mapGetter 获取您的商店值,这样您也可以提供默认值。

您可以将 totalPages 设置为 0,并在您的商店值发生变化时使用观察器更新值。

这真的取决于上下文。例如,如果您需要为检索该值的其他组件提供相同的默认回退,则 Vuex getter 将很有帮助。

【讨论】:

  • 感谢您抽出宝贵时间回答@Stephan-v :).. 有没有机会(通过代码)向我展示您的操作方式?又名..最简单的:)
猜你喜欢
  • 2020-12-20
  • 1970-01-01
  • 2017-07-25
  • 2021-10-11
  • 2021-06-12
  • 2018-10-19
  • 2019-03-05
  • 2018-08-17
  • 2021-06-10
相关资源
最近更新 更多