我正在开发一个应用程序,但我不知道在这种基本情况下创建良好Redux的最佳方法是什么...实际上,在我公司中,我们无法规范化数据(长话短说... )。
想象3个视图:
1)显示文件夹列表(从API提取,因此我为此实体有一个化简器)。
2)显示一个文件夹的详细信息。其中有另一个实体的列表:猫。另外,您有一个猫过滤器表单。
3)显示猫的列表(第二个视图之间的区别在于您不在文件夹详细信息上)。您也有猫过滤器表单。
如何在第二个和第三个视图上管理猫的状态?我是否必须为第二个视图创建一个动作“ GET_CATS_FOR_FOLDER”,为第三个视图创建另一个动作“ GET_CATS”(我猜这不是一个好习惯)?我是否应该找到一种解决方案来同时管理两者?对于影响猫的状态的过滤器形式,存在相同的问题...
请提前!
答案 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
。