React Native Redux性能问题应用冻结

时间:2019-02-20 21:55:23

标签: react-native redux redux-thunk

我正在使用Redux(Thunk)构建一个React Native应用程序,最近我在该应用程序中遇到了无法找到好的解决方案的性能问题。

问题在于,无论状态是否更改,每次我调用动作时,UI / App都会冻结/被阻止。该应用程序正在处理帐户数据,并且当帐户数量增加到约3000个帐户时,问题就开始了。我测试了以下内容:

  1. 在reducer中创建新状态所花费的时间。
  2. 用于不必要的渲染。
  3. 对在mapStateToProps或其他地方完成的数据进行的任何操作。

以上都不是很长的时间,或者似乎不是问题。我正在测试的示例是帐户的列表视图,并带有用于过滤的动画弹出窗口。当我在弹出窗口中添加过滤器并将其保存(更新商店并关闭弹出窗口)时,我可以看到帐户在弹出窗口后立即进行过滤,但是UI /弹出窗口动画被冻结了2-3秒,之后关闭。

数据以id的形式存储为帐户索引,并以单独的对象存储为过滤器:

{ 
    accountByIds: { acc1: {...}, acc2: {...} }, 
    filters: {...} 
}

我一直在想使用ImmutableJS是否会有所帮助,但是随着应用程序变得越来越大,我不确定这是否会有所帮助,因为问题似乎并不在于许多渲染等,所以我没有改变它。

我目前正在更新商店,如下所示:

return {

          ...state,
          filters: {
                ...state.filters,
                newFilter
          }
}

总而言之,似乎在商店更新时,会立即调用适当的渲染,但随后该应用似乎停滞了片刻。

如果任何人都能对此有所了解或向正确的方向指点,我将不胜感激。

0 个答案:

没有答案