React native -消耗太多RAM,但不会在FlatList中释放大数据

piah890a  于 2023-10-22  发布在  React
关注(0)|答案(2)|浏览(135)

在一个React Native项目中,使用react query在提要中带来无限滚动- RAM越来越多地被消耗,但不会释放组件的内存(从近170 MB开始,达到2 GB,应用程序崩溃)。
任何帮助都非常感谢。
"react-native": "0.72.4", "@tanstack/react-query": "^4.29.17"
页面被无限滚动,分页的API每10个项目被调用一次,每次滚动RAM都在增加,它必须是平均大小。并且RAM必须被释放用于窗口外的项目。
预计会有内存泄漏,但只返回一个Text,它仍然增加内存,但计数减少

bmp9r5qi

bmp9r5qi1#

并且RAM必须被释放用于窗口外的项目。
React Query将数据缓存在内存中,因此不能仅仅因为它不在视口中就将其释放。
在V5中有一些改进:

  • maxPages -一个新选项,用于限制存储在该高速缓存中的页面数量
  • fine-grained persistence-一个实验性的插件,用于将查询卸载到外部存储,以便在未使用时将其从内存中删除

对于您的情况,请尝试maxPages选项。

ecbunoof

ecbunoof2#

消耗内存的是窗口之外的项目没有被删除。我通过为 Package FlatList的scrollview赋予removeClippedSubViews prop为true并为其中Map的项赋予overflow:"hidden"样式来实现它

相关问题