BeforeMount 不适用于计算方法

BeforeMount not working on a computed method

你好,每当我重新加载我的页面时我都会遇到问题我想调用 beforeMount() 方法来调用我的 filterRecords(计算方法)以便我可以接收数据,但它无法正常工作它告诉我认为 filterRecords 不是函数。

我的计算:

computed: {
    ...mapGetters({
      sec: "sec"
    }),
    createdDate() {
      return moment().format("DD-MM-YYYY ");
    },
    createdHours() {
      return moment().format("HH:mm ");
    },
    filteredRecords() {
      return this.records.filter(record => {
        return record.template_id === this.sec;
      });
    }
  },

所以我就这样做了:

beforeMount() {
    this.filteredRecords();
  },

它没有调用它,所以我的 filteredRecords 什么也得不到。

我如何在重新加载页面时调用它(我正在从 API rails 接收记录数据)

一定要查看有关计算属性的 Vue 文档。

您不应将它们作为函数调用,而应作为属性调用(因为它们是 计算 属性)。

您可以尝试在 beforeMount 挂钩中控制台记录 filteredRecords,如下所示:

beforeMount() {
   console.log(this.filteredRecords)
},

这似乎是对计算属性工作原理的根本误解。访问计算属性的方式与访问组件上的 props 或数据的方式相同。它们作为值而不是方法来使用。这个事实的一个重要提示是您正在调用 map**Getters**

您可以在模板中使用 filteredRecords,例如:

<div v-for="record of filteredRecords" :key="record.someKey">...</div>

或将其分配给数据 属性 this.records = this.filteredRecords