如何使用Ngrx创建嵌套状态结构?

时间:2018-12-14 03:54:59

标签: angular redux ngrx

我正在用Ngrx构建angular 5应用程序以进行状态管理。

我正在尝试在状态树下构建,其中'Admin'是该功能,而库是Admin功能的一部分。在库中,我们可以有多个库,每个库都有自己的状态。

首先,我的以下状态是正确的归一化术语。我正在尝试构建具有应用程序结构的状态。 因此,我认为以同样的方式查看状态树也很容易。

现在,我为每个库创建了reducer。而且,如果我创建LibraryReducer Map,则可以指向每个库简化器。但是,当我构建管理员化简图时,由于它需要库具有化简功能(ActionReducerMap),所以无法构建它。我曾想过将此库简化器Map传递给AdminReducer,但它不接受。

您知道如何处理此嵌套状态结构吗?如果我要构建的状态树正确,那么如何解决ngrx面临的错误??

状态树:

{
    UIState: {
        ..
    },
    AdminState: {
        LibraryState: {
            Library1: {},
            Library2: {}
        }
    }
}

library.reducer.ts

LibraryState{
    library1: Library1State,
    library2: Library2State,
}

reducer: ActionReducerMap<LibraryState> = {
    library1: library1Reducer;
    library2: library2Reducer;
}

Admin.reducer.ts

AdminState {
    library: LibraryState
}

reducer: ActionReducerMap<AdminState> = {
    library: libraryReducers; // This is error. As ActionReducerMap expects only reducer function not reducer map.
}

0 个答案:

没有答案