我们正在使用react和redux开发一个相当大的CRM应用程序。应用程序的核心部分主要显示了许多不同数据库对象的三种不同视图。例如,我们的系统中有用户路线。概述页面,显示所有用户的分页列表。详细视图,显示有关单个用户的详细信息。并且关系视图显示与该用户以某种方式相关的对象列表,例如该用户所在的组。多个这样的视图可以在同一路径下的同一页面上。
由于大多数这些视图对于所有类型的资源都非常相似,因此我们有一般的ResourceOverview,ResourceDetail和ResourceRelationship视图。
对于所有资源,数据提取也非常相似,因此我们有一个ListDataSource,ItemDataSource和RelationshipDataSource。这些类包含用于load,setPage,setOrder和reducers之类的redux-thunk动作创建器,用于处理请求的结果和参数,例如items,page,itemsPerPage和order。
这一切都很好但我们遇到的一个问题是这些数据源和我们的反应组件之间的连接可能变得非常复杂且难以理解。我希望能够组成一个页面组件,该组件由连接到不同数据源的多个视图组成。理想情况下,我希望每个路由都有一个容器组件,指定要显示哪些视图与哪些数据源,使用connect函数为数据源提供对存储的访问权限,并将数据源传递给使用数据和消息操作的纯组件。数据源。
我的第一个问题是:这一切听起来合理还是这个设计存在缺陷?
我的第二个问题是:我如何有效地将这样的数据源对象(有助于检索状态的正确部分并允许调度动作)传递到纯组件的深层结构中,而无需将所有支持转移到树一直在吗?或者是否有更好的替代这些数据源对象?