我已经设置了一个反应本式Android应用。它有一些屏幕,登录页面和其他一些页面,但是我面临的问题正在使用该应用程序放慢速度。在几次屏幕之间导航之后,组件无法渲染,图标失散和屏幕过渡会减慢。如果广泛使用,我的意思是,如果我继续导航和导航,该应用最终将变得无法使用。我该如何解决?
请注意 - 我没有使用Redux或任何路由器,只有StackNavigator。我认为这是调试构建的问题,但是我生成了一个签名的APK,并且问题仍然存在。
如何重置堆栈导航器并从中删除所有以前的状态以清除内存?
我经历了应用程序的整体流程,发现在某些地方没有清除堆栈,它一直在构建。例如,当提示用户注销时,未清除堆栈,而是将更多页面添加到堆栈中。当用户登录多次数次时,堆栈就会变得更大。
另外,我阅读了在Android上反应的某个地方在单线程上运行,而它在iOS中运行多线程。
与本机代码不同,在React中,您必须非常重视内存管理。在页面中删除事件听众。
这是我用来在几个地方重置堆栈的代码。
import { NavigationActions } from 'react-navigation'
this.props.navigation.dispatch(NavigationActions.reset({
index: 0,
key: null,
actions: [NavigationActions.navigate({ routeName: 'ParentStackScreen' })]
}))