我正在开发一个复杂的应用程序,它有许多不同的屏幕,有多种形式。用户抱怨它不时崩溃和退出。我认为它可能来自太多的navigator.pushes所以我试图限制背部的数量,但我似乎无法让它正常工作。
我正在使用immediatelyResetRouteStack
我从导航器onDidFocus道具中调用。
问题是,如果我在Navigator onDidFocus prop中调用它,它会触发一个新的渲染,并且我在大约1秒后查看重新渲染的屏幕。我也尝试了一个泛型函数,每当我执行navigator.push时我都会调用它,但它不会动画,而且转换到新屏幕的速度很慢。
是否有更好的方法来限制背部数量?
我的代码:
_navigatorOnDidFocus(){
let routes=_navigator.getCurrentRoutes();
if (routes.length > 4){
let routesCopy = _.cloneDeep(routes);
let newRoutes = [
routesCopy[0],
routesCopy[2],
routesCopy[3],
routesCopy[4],
];
_navigator.immediatelyResetRouteStack(newRoutes);
}
}