Nuxt - 如何在全局 mixins 中调用 getter?

问题描述

大家好,这里是我写的 mixin 代码,因为我想将它用于 default.vue 和 error.vue 布局。我试图避免在两种布局中重复代码

export default {
  provide () {
    return {
      copyRight: this.getcopyrightText,email: this.getEmail,socials: this.getSocials
    }
  },computed: {
    getMenu () {
      return this.store.getters['general/getMenu'].menu
    },getSocials () {
      return this.store.getters['general/getSocialDetails']
    },getcopyrightText () {
      return this.store.getters['general/getcopyRight']
    },getEmail () {
      return this.store.getters['general/getEmail']
    }
  },middleware: 'load-menu-items'
}

这就是我得到的:无法读取未定义的属性“长度”

我做错了什么?

解决方法

在您的组件中,我假设您对从 getter 方法接收的数据使用 <input accept="video/*,image/*" multiple="" display="inline-block" type="file" class="_n _5f0v" id="js_31"> ,这可能是发生错误的地方。

首先,您应该调试以查看您的 getter 是否真的按预期工作。试试这个并查看控制台中每个 getter 计算属性的输出。如果 .length 被打印到控制台,如果您在其上使用 undefined,您将收到您发布的错误

.length

如果您发布使用此 mixin 的组件,也许我可以进一步帮助您。