1

我的应用程序中有一个简单的列表组件。我希望列表项可以选择。所以我的应用程序状态如下所示:

AppState {
    items: Array<Item>,
    selected: Array<Identifier>
}

我的引导程序:

bootstrap(AppComponent, [
    provideStore({
        items: ItemsReducer,
        selected: SelectedReducer
    })
]);

List 的行为很简单。单击 - 项目的 ID 添加到选定的数组,其他被清除。Ctrl+Click - 项目的 ID 添加到选定的数组,其他保留。使用当前结构很容易实现。

但我也希望可以使用 Shift+Click 选择一系列项目 - 在这种情况下,也应该选择上次选择和当前项目之间的所有项目。为此,我不仅需要知道当前项目,还需要知道最后选择的项目,并有权访问列表以查找它们之间的项目。但显然我无权访问itemsin SelectedReducer

那么我该怎么做呢?我是否应该考虑重组我的商店,所以items并且selected会处于一个状态对象中?还是使用redux-thunk(似乎有点过头了)?还有其他选择吗?

4

0 回答 0