redux粘性或时间记忆选择器

时间:2016-10-23 18:05:38

标签: reactjs global-variables redux react-redux

我在React-Redux应用程序中有一个简单的需求,我想找到' redux方式'处理:

首次运行应用程序时,会生成一些随机数据并将其作为initialState传入,并且在整个应用程序执行期间,我使用redux操作调度程序和状态更改来播放该数据。

但是,我需要根据mapStateToProps函数中的第一个接收状态计算一些派生数据,并在应用程序执行结束时使用它。如果必须根据每个状态更改来更新派生数据,那将很容易,但诀窍是我只需要计算一次并在整个应用程序执行期间记住它。

派生数据不是应用程序状态的逻辑部分,因此我不想打扰它成为商店的一部分。我可以使用一个简单的全局变量来保存这些数据并避免在以后重新计算它,但我几乎可以肯定这不是“还原方式”。使用selectors似乎也不是答案,因为每次状态更改都会重新计算派生数据。我也调查了React context,但由于我不想立即将数据发送到组件,因此它似乎也不是我需要的。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您应该将其存储在Redux中。也许它只被修改一次,但它仍然是应用程序状态。

请注意,任何可以从当前应用状态派生的内容都应使用选择器“动态”计算。

通过使用Reselect,您不必担心性能问题(除非派生需要很长时间并且您需要WebWorkers)。