0

我正在使用重新选择库。我有很多组件,每个组件都(在它们的 stateProps 中)连接到某个选择器(通过重新选择实现,我们将其称为选择器 A)。每次选择器 A 的参数之一(也选择器让我们称为 B、C、D)发生变化时,选择器 A 会重新计算并为每个连接的组件单独调用。由于这个计算很密集,这让我在性能上付出了很多。有没有办法避免这种情况并一劳永逸地计算?谢谢

4

1 回答 1

0

重新选择库为选择器实现记忆。Selectors created with the createSelector function are recalculated only when the input values to the selector change. 否则,选择器返回其先前的记忆值 - 跨组件。从重新选择文档

如果输入选择器的值与之前对选择器的调用相同,它将返回之前计算的值,而不是调用转换函数。

这要求您跨组件重用相同的选择器功能。通常,您创建选择器以及构建您选择的状态的reducer(例如,在reducers.js中)。您还应该编写选择器以获得额外的智能,以便可以记住在不同选择器之间共享的子状态。

于 2017-06-13T04:02:54.533 回答