在ng build --prod时遇到问题:
装饰器中不支持函数调用,但在'initialState'中调用了'Ui'
export const initialState: AppState = {
userAisles: null,
userItems: null,
userLists: null,
userShops: null,
ui: new Ui(),
config: new Config(),
};
和我的Ui班:
export class Ui {
loading: false;
itemsOrder = 'name';
itemsOrderSense = 'ASC';
listsOrder = 'date';
listsOrderSense = 'ASC';
listsConsultOrder = 'name';
listsConsultOrderSense = 'ASC';
history: string = null;
resolved = false;
constructor(values: Object = {}) {
return Object.assign(this, values);
}
}
如果我在initialState中对Ui类进行硬编码,它会起作用,然后会抱怨Config类,因此问题就在那里。我找不到任何解决方法来摆脱编译错误消息。
这是我的配置:
"@angular/animations": "^6.0.3",
"@angular/common": "^6.0.3",
"@angular/compiler": "^6.0.3",
"@angular/core": "^6.0.3",
"@angular/forms": "^6.0.3",
"@angular/http": "^6.0.3",
"@angular/platform-browser": "^6.0.3",
"@angular/platform-browser-dynamic": "^6.0.3",
"@angular/router": "^6.0.3",
"@ngrx/effects": "^6.1.0",
"@ngrx/router-store": "^6.1.0",
"@ngrx/store": "^6.1.0",
"@ngrx/store-devtools": "^6.1.0",
"angular-hammer": "^2.2.0",
"bootstrap": "4.1.3",
"core-js": "^2.5.4",
"font-awesome": "~4.7.0",
"moment": "^2.20.1",
"ng2-dragula": "^2.0.2",
"ngx-facebook": "^2.4.0",
"primeng": "^6.1.2",
"rxjs": "^6.2.2",
"rxjs-compat": "^6.2.2",
"zone.js": "^0.8.26"
感谢您的帮助
答案 0 :(得分:0)
可以使用工厂方法吗?
而不是调用new Ui()
或new Config()
,而是使用返回新Ui或新Config对象的函数,如下所示:
export const uiFactory(){
return new Ui();
}
export const configFactory(){
return new Config();
}
export const initialState: AppState = {
userAisles: null,
userItems: null,
userLists: null,
userShops: null,
ui: uiFactory,
config: configFactory
};
还是不给他们打电话?
或者只是做
const config = new Config();
{.... config: config .....}
因为initialState将仅绑定一次。