在React-redux应用程序

时间:2017-10-22 19:15:55

标签: reactjs redux react-redux

我正在使用一个应用程序,我必须在渲染之前计算派生数据。

背景:通常,我在组件中获取数据(来自使用mapStateToProps的API)并执行组件内的所有操作。

一旦我从API收到数据,我就必须映射它们。并且不需要反复映射,直到没有进一步的API调用。

那么,如果在下次API调用之前不需要操作数据,那么它是什么?

提前致谢

2 个答案:

答案 0 :(得分:2)

在Redux中,负责计算派生数据的函数称为“选择器”。如Redux documentation中所述:

  

通常建议选择器与减速器一起定义   并导出,然后在其他地方重复使用(例如在mapStateToProps中   功能,在异步动作创建者或传奇中)来共置所有   知道状态树的实际形状的代码   减速机文件。

任何状态改变时调用这些函数在性能方面都不是一个好主意。有一个名为reselect的库可以记忆(缓存)选择器输入的计算状态值,如果再次传递相同的选择器输入,则返回相同的缓存状态。所以基本上跟踪输入,如果相同的输入重复,则再次返回其缓存状态而不进行任何重新计算。

请参阅重新选择here的用例和示例,但我建议您不要使用重新选择,直到您的应用开始出现性能问题。

答案 1 :(得分:0)

从您的问题看来,您似乎想在将数据存储在Redux状态之前-在从API获取数据之后将其转换为 。不看代码结构就很难建议。您可以在动作中的api调用上await并将其转换为正确的形状,然后再传递给化简器以存储状态。