我正在尝试使用concatenate
中的npm包'vuex-orm-decorators'
当我尝试插入数据库时,出现错误TypeError: this.types is not a function
实体看起来像这样
import { Model } from "@vuex-orm/core";
import { NumberField, OrmModel, StringField } from "vuex-orm-decorators";
@OrmModel("races")
export default class Race extends Model {
@NumberField()
public ID!: number;
@StringField()
public Name!: string;
}
商店看起来像这样:
import Vue from "vue";
import Vuex from "vuex";
import { ORMDatabase } from "vuex-orm-decorators";
Vue.use(Vuex);
export default new Vuex.Store({
.
.
.
plugins: [ORMDatabase.install()]
});
另外,也许这是一个线索。...在Vuex-Orm中,this.setters返回值,但是this.setters('all')返回未定义。
/**
* Get all records.
*/
Model.all = function () {
return this.getters('all')();
};
通过查看未定义的基本字段和函数,似乎vuex-orm数据库未正确设置。有任何想法吗?
我试图为vuex-orm-decorators创建一个stackoverflow标签,但是我还没有达到1500 rep,所以我只是将其标记为vuex-orm。
答案 0 :(得分:0)
在Vuex-ORM vuex-orm-decorators文档中定义的types
函数的实现中,Single Table Inheritance包中有一个小错误。
我创建了一个fork,在其中解决了这个简单的问题,并创建了pull request以更新原始程序包。
最后,我要指出的一点是,从我对该程序包的细微了解来看,它尚未完全为Vuex-ORM内置的表继承功能做好准备,但对于简单用例仍然非常有用。