微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

计算属性返回空数组

如何解决计算属性返回空数组

我在VueJS中有一个计算属性,如下所示:

  computed: {
    groupedTemplates() {
      const ret = this.templates.reduce((acc,value) => {
        value.group = value.group || "Ungrouped";
        if (!acc[value.group]) {
          acc[value.group] = [];
        }
        acc[value.group].push(value);
        return acc;
      },[]);
      console.log(ret);   // <---- This works!!
      return ret;
    },...mapState(["currentPatient","currentSite","phrases","templates"]),},

当我查看控制台时,可以看到正确的响应,即 app.js:4061 [Ungrouped: Array(6),Note: Array(2),Order Set: Array(3)]

但是,当我在代码中使用groupedTemplates时,它的值为[]

当我将返回行更改为

return 34;

它按预期返回34。有什么作用?

解决方法

因为您的reduce不会将项添加到数组中,而是在Array对象上创建新的属性-您无法use a string as an index到数组中。

您可能想要的是从您计算的Object中返回groupedTemplates ...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。