【问题标题】:Can't access getters in the store for Vue when in a template在模板中时无法访问商店中的 Vue 获取器
【发布时间】:2017-04-17 07:24:45
【问题描述】:

我有一个具有以下渲染的组件 (computed props)。它可以正常工作并显示 blopp 应该显示的文本,但对于 blpp 则没有。在最终版本中,我希望它生成一个从商店状态中获取的字符串列表,并用作 blipp

export default {
  computed:{
    blopp: function(){ return "ghjk,l"; },
    blipp: function(){ return this.$store.getters.getBlipp(); }
  }
}

它是基于以下template渲染的。

<template>
  <div>
    ...
    <div v-bind:blopp="blopp">{{blopp}}</div>
    <div v-bind:blipp="blipp">{{blipp}}</div>
  </div>
</template>

store 中的implementation 看起来像这样将getters 带到了开放论坛。

...
const state = { blipp: [], ... };
const getters = {
  getBlipp: function() { return state.Blipp; }, ...
}
export default new Vuex.Store({ state, mutations, actions, getters });

第二个组件根本没有任何价值,我不确定从哪里寻找原因。

我可能设置不正确,但它有很多活动部件,对于无知的我来说有点难以诊断。当我尝试在控制台中运行以下命令时,

temp.$store.getters

我得到一个对象,它列出了像这样的 getter。

...
blipp:(...)
get blipp: function()
__proto__: Onject

不确定如何处理该信息...它似乎是一个函数,但是当我尝试调用它时,它说它是未定义的。

【问题讨论】:

    标签: javascript data-binding store vue.js vuex


    【解决方案1】:

    getter 的功能与 states 类似。因此,要解决它们,您调用参数而不是方法,即

    blipp: function() { return this.$store.getters.getBlipp }
    

    在这种情况下,您可能希望将 getBlipp 重命名为简单的 blipp

    我整理了一个 JSFiddle,展示了您可以与 vuex 的 store 交互的各种方式,希望对您有所帮助:

    Example Vuex JSFiddle

    【讨论】:

    • 哦,伙计...我从一开始就猜对了但是错误地拼写了物业名称(忘记了复数形式)。因此,您的回答既证实了我确实得到了这些东西并且证明了我是一个依赖智能感知功能的懒惰开发人员,呵呵。愚蠢的 JavaScript 和愚蠢的灵活性让我觉得拼写不正确很愚蠢,哈哈哈。 +1 为小提琴的努力。它会以许多其他方式提供帮助。真的很感激。
    猜你喜欢
    • 1970-01-01
    • 2022-01-17
    • 2021-10-20
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多