2017-06-12 39 views
0

我目前使用ng2-redux來訪問我的應用程序中的全局狀態。我使用DI來訪問該Observable。這一切都正常工作與JIT,但是當我執行AOT buuild我得到以下錯誤:遇到靜態解析符號值如何使用ng2-redux和@select執行生產版本?

ng build --environment=prod --target=production 

錯誤的錯誤。函數調用不受支持。考慮使用對導出函數的引用替換函數或lambda(在原始.ts文件中的位置25:11),解析/Users/jmurphy/projects/fish/tank/src/app/admin/admin.component中的符號AdminComponent .TS

我一直用我的所有組件的下列模式注入的觀:

@select((state: IAppState) => state.lens) public readonly remoteLens$: Observable<IRemoteObject<LensDTO>>; 
    @select((state: IAppState) => state.admin) public readonly remoteAdmin$: Observable<IRemoteObject<AdminDTO>>; 

有什麼用,讓全球狀態的類型安全的訪問通過正確的模式出我的應用程序並繞過構建錯誤?

回答

0

您正在尋找:

export function selectBaseId(appstore) { 
    return appStore.base.id; 
} 

class YourClass { 
    // ... 
    @select(selectBaseId) routeId$: Observable<number>; 
} 

或選擇:

export function selectBaseId(appstore) { 
    return appStore.base.id; 
} 

class YourClass { 
    // ... 
    @select(['base', 'id']) routeId$: Observable<number>; 
} 

從角Redux的問題:https://github.com/angular-redux/store/issues/236

+0

這確實工作。但這是荒謬的語法。這看起來像一個錯誤。 –