我正在使用Redux(Thunk)构建一个React Native应用程序,最近我在该应用程序中遇到了无法找到好的解决方案的性能问题。
问题在于,无论状态是否更改,每次我调用动作时,UI / App都会冻结/被阻止。该应用程序正在处理帐户数据,并且当帐户数量增加到约3000个帐户时,问题就开始了。我测试了以下内容:
以上都不是很长的时间,或者似乎不是问题。我正在测试的示例是帐户的列表视图,并带有用于过滤的动画弹出窗口。当我在弹出窗口中添加过滤器并将其保存(更新商店并关闭弹出窗口)时,我可以看到帐户在弹出窗口后立即进行过滤,但是UI /弹出窗口动画被冻结了2-3秒,之后关闭。
数据以id的形式存储为帐户索引,并以单独的对象存储为过滤器:
{
accountByIds: { acc1: {...}, acc2: {...} },
filters: {...}
}
我一直在想使用ImmutableJS是否会有所帮助,但是随着应用程序变得越来越大,我不确定这是否会有所帮助,因为问题似乎并不在于许多渲染等,所以我没有改变它。
我目前正在更新商店,如下所示:
return {
...state,
filters: {
...state.filters,
newFilter
}
}
总而言之,似乎在商店更新时,会立即调用适当的渲染,但随后该应用似乎停滞了片刻。
如果任何人都能对此有所了解或向正确的方向指点,我将不胜感激。