【问题标题】:Map Vuex getter to a computed property AFTER component is created创建组件后将 Vuex getter 映射到计算属性
【发布时间】:2018-08-31 01:17:31
【问题描述】:

有可能吗?

我知道我可以这样做:

computed: {
        ...mapGetters({
            xyz: 'xyz'
        }),

但我想知道是否可以使用继承的 mapGetters 来做到这一点,即在 created 钩子中:

created () {
        this.$options.computed = Object.assign(this.$options.computed, {...this.dependencies.mapGetters(this.stores)});

        console.log(this.$options.computed); // returns mapped getters
    },

控制台输出返回映射的 getter,但它似乎不起作用,在 Vue DevTools 中那些 Vuex 绑定是未定义的。

【问题讨论】:

  • 你为什么要这样做?
  • 我有组件 xyz 和 A、B、C 组件正在扩展 xyz。我宁愿在 xyz 中导入mapGetters,而不是在每个 A、B、C 中。
  • “扩展”使用Vue.extend()?
  • @acdcjunior 是的

标签: javascript vue.js vuejs2 vuex


【解决方案1】:

没有。你不能。没有办法。

还有,

$options 是只读的。

【讨论】:

  • $options 不是只读的,你在哪里找到的?就在这个代码示例中,我正在更改它并且没有警告或错误。也可以编辑$options.components 来注册扩展组件中的组件。
  • 你可能不会出错,使用'strict'模式然后你会发现使用它的错误。
猜你喜欢
  • 1970-01-01
  • 2018-07-22
  • 2021-01-18
  • 1970-01-01
  • 2021-07-19
  • 2018-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多