在这种情况下最好的redux架构是什么?

时间:2019-01-25 13:59:15

标签: angular typescript redux ngrx

我正在开发一个应用程序,但我不知道在这种基本情况下创建良好Redux的最佳方法是什么...实际上,在我公司中,我们无法规范化数据(长话短说... )。

想象3个视图:

1)显示文件夹列表(从API提取,因此我为此实体有一个化简器)。

2)显示一个文件夹的详细信息。其中有另一个实体的列表:猫。另外,您有一个猫过滤器表单。

3)显示猫的列表(第二个视图之间的区别在于您不在文件夹详细信息上)。您也有猫过滤器表单。

如何在第二个和第三个视图上管理猫的状态?我是否必须为第二个视图创建一个动作“ GET_CATS_FOR_FOLDER”,为第三个视图创建另一个动作“ GET_CATS”(我猜这不是一个好习惯)?我是否应该找到一种解决方案来同时管理两者?对于影响猫的状态的过滤器形式,存在相同的问题...

请提前!

2 个答案:

答案 0 :(得分:1)

您是否可以创建不同的选择器来组合所需的数据?

export const getFolders = createSelector(...);

export const getFolder = createSelector(...);

export const getFolderWithCats = createSelector(...);

export const getCats = createSelector(...);

答案 1 :(得分:0)

我不知道您为什么要将所有这些与化简器,州,商店等进行复杂化。

创建服务(如果要保留状态,则为单个)

@Injectable()
export class MyService() {
  folders: { name: string, id: string, cats: any[] }[];

  constructor(private http: HttpClient) {
    this.http.get('api/folders').subscribe(folders => this.folders = folders);
  }
}

现在,您可以简单地使用路由器显示视图并从URL中获取ID,其格式如下:/#/folders/10/cats/12