VUE:通过计算的 mapGetters() 在 data() 部分访问它时状态变量未定义

VUE : state variable undefined when accessing it in data() section through computed mapGetters()

我在我的解决方案中大量使用 ...mapGetters 并取得了成功,但现在我需要直接在 data() 部分访问变量,似乎变量不是 set/ready 访问时..

mapGetter 在 computed:{} 部分..

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

代码:

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

Vue状态截图(Chrome)

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

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

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

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

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