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
你好,每当我重新加载我的页面时我都会遇到问题我想调用 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