属性在类型 vuejs pwa data() 函数上不存在



我知道这可能是基本的,但我无法弄清楚。

我用 vue-cli 3 构建了一个 VueJS PWA,一切正常,但是当我尝试为我的应用程序提供服务进行测试或为生产构建时,我总是收到错误:类型"上不存在属性"。

我的代码示例:

import { Component, Prop, Vue } from "vue-property-decorator";
import { VueperSlides, VueperSlide } from "vueperslides";
import "vueperslides/dist/vueperslides.min.css";
import db from "@/db";
@Component({
components: {
VueperSlides,
VueperSlide
}
})
export default class HelloWorld extends Vue {
@Prop() private msg!: string;
data() {
return {
houses: [],
provinces: []
};
}

private created() {
const moment = require("moment");
var date = moment(new Date()).format("YYYY-MM-DD");
db
.collection("houses")
.where("valid_until", ">", date)
.get()
.then(querySnapshot => {
querySnapshot.forEach(doc => {
this.houses.push(doc.data());
});
});
}

在上面的例子中,我不断收到错误"物业房屋在HelloWorld类型上不存在。但是,无论我在哪里尝试访问data((变量,我总是遇到相同的错误,但是对于我在组件中定义的不同变量。

有谁知道问题是什么,因为我真的不知道它可能是什么。

问题是数据声明。使用类样式组件,您不会像通常那样声明数据属性,而是将各个数据属性声明为:

// good
private houses: any[] = []
private provinces: any[] = []
// bad
data() {
return {
houses: [],
provinces: []
};
}

您当然可以更改any[]类型以匹配您实际定义房屋和省份的方式,即object[]HouseInterface[]

最新更新