Redux - 保持相关的Reducer同步

时间:2017-07-14 18:04:14

标签: redux

我正在构建一个Angular 1.5应用程序,因为我正在逐步添加Redux。我遇到了一个问题,我很难找到一个好的解决方案。我的应用程序主要处理显示数据和管理配置的小部件,这些配置定义了那些小部件中显示的数据。随着我向Redux添加更多状态,小部件减速器变得越来越大。我已将它分解为几个较小的减速器,但现在我想知道这样的设置的可维护性。

基本上我担心将来很容易修改一个reducer或添加一个对widget数据进行操作的新动作,然后忘记调整所有其他reducers来解释系统的这个新方面。或者,小部件状态可以通过减速器改变的各种方式将变得如此复杂,以至于难以确保我已经正确调整了所有必需的减速器。

很多这些减速器基本上只需要在移除/移动/修改小部件时做出反应。我希望有一个简单的方法可以在Redux中做到这一点,就像在Angilla中的深度观察一样(我知道应该避免深度观察者,但仅作为一个例子)。当我将更多应用程序转换为使用Redux时,这些缩减器将变得越来越复杂。这似乎是一场失败的比赛。是否有一些不同的方法来解决这个问题更适合这个问题空间?或者我应该接受一些减速器将是巨大的,它是如何必须的?感谢您的任何意见!

1 个答案:

答案 0 :(得分:0)

我的具体问题的解决方案主要是将与给定窗口小部件相关的所有状态保存在一个对象中,这样我就不会有冗余数据管理要求。我将状态和缩减器分开,这导致管理数据清理和维护的相同逻辑分布在不同的reducer中。如果我只是通过实现更高阶的减少器来分割减速器并将状态保持在一个概念的一个位置,那么这个问题就会消失。