在构建时我遇到了一个问题–prod:
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"
谢谢你的帮助
解决方法
你能用工厂方法吗?
而不是调用新的Ui()或新的Config()使用一个返回一个新的Ui或一个新的Config对象的函数,如下所示:
而不是调用新的Ui()或新的Config()使用一个返回一个新的Ui或一个新的Config对象的函数,如下所示:
export const uiFactory(){ return new Ui(); } export const configFactory(){ return new Config(); } export const initialState: AppState = { userAisles: null,ui: uiFactory,config: configFactory };
或者他们不会被召唤?
或者只是做
const config = new Config(); {.... config: config .....}
因为initialState只会绑定一次.