From ba1f912907994a2b7a9587ca686dbbf8f26ae532 Mon Sep 17 00:00:00 2001 From: Eric Vicenti Date: Thu, 19 Jul 2018 12:20:56 -0700 Subject: [PATCH] Fix leak in createNavigator Previous descriptors had been retained because this binding caused `this.prevState` to remain referenced. This binds the component getter to null instead. --- packages/react-navigation/src/navigators/createNavigator.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/react-navigation/src/navigators/createNavigator.js b/packages/react-navigation/src/navigators/createNavigator.js index 525d591c..ed6e2f5a 100644 --- a/packages/react-navigation/src/navigators/createNavigator.js +++ b/packages/react-navigation/src/navigators/createNavigator.js @@ -36,8 +36,10 @@ function createNavigator(NavigatorView, router, navigationConfig) { descriptors[route.key] = prevDescriptors[route.key]; return; } - const getComponent = () => - router.getComponentForRouteName(route.routeName); + const getComponent = router.getComponentForRouteName.bind( + null, + route.routeName + ); const childNavigation = navigation.getChildNavigation(route.key); const options = router.getScreenOptions(childNavigation, screenProps); descriptors[route.key] = {