【发布时间】:2016-08-19 02:38:36
【问题描述】:
作为一个 Redux 初学者,给定(的想法)一个更大的应用程序,我想象一个类似于以下的 root reducer:
const rootReducer = combineReducers({ accounting, crm, sales })
在这种情况下,应用程序状态将包含会计、crm 和销售,即使用户只使用应用程序的一部分。这可能是有利的,例如在会计和 CRM 之间来回切换时作为缓存,但您可能不希望保留曾经打开的所有视图的所有数据,即没有任何修剪的完整可能状态树,永远在应用程序中,甚至在加载时将整个树初始化为其初始状态。
是否有成语、模式或库可以解决这个问题,或者我错过了什么?
作为解决保留所有数据的部分解决方案,我想像在离开应用程序的某些部分时将部分状态重置为其初始状态,并给出一些声明性规则,例如:
- 当
<Accounting/>接收到componentWillUnmount时设置accounting = {}(间接地,通过ACCOUNTING_LEAVING等动作) - 当
<MailEditor/>收到componentWillUnmount时删除/设置crm.mail = {}
我还没有看到以任何方式清理状态的示例。许多“列表+详细视图”示例存储类似{ list: [...], detail: {...} } 的状态,但是当切换到详细视图时,列表既不会被清空,也不会被清空,也不会被删除。当我稍后可能会返回列表视图时,这很好,但在使用应用程序 9 到 5 时却没有释放数据。
【问题讨论】:
标签: reactjs state redux reducers