我可以在我正在构建的React + Redux应用程序中使用一些性能问题的帮助。
我有一个容器组件(路径),它接收一些使用'重新选择'来记忆的属性。
路线是每个用户,用户有很多录音。选择器只是按日期降序排序并保存在数组中的记录(对象)。
问题在于,当用户滚动浏览记录列表时,我需要触发一些操作。每一个发射的东西都会让卷轴变得糟糕。真正奇怪的是,即使状态更改没有导致重新呈现,也会发生。我知道这是因为我有shouldComponentUpate()
总是为渲染树的部分返回false,它会更新并且无论如何都会发生抖动和跳跃。
我将尝试规范化记录,这些记录当前是嵌套在用户对象中的数组,但我对此有所怀疑。我这样说是因为调度并导致滚动问题的两个动作都对状态进行了非常简单的更新 - 一个只是更新状态树顶部的值(对于该路由),另一个将新值推送到数组中也在状态树的顶部。当我简单地注释掉这些调度但是在这些调度之前完成所有逻辑时,我得到了完美的滚动性能。
我想知道我是否应该在用户滚动时尝试执行这些状态更新,并且只应在滚动停止后执行它们。
感谢任何帮助!