diff --git a/native/chat/chat-thread-list.react.js b/native/chat/chat-thread-list.react.js
--- a/native/chat/chat-thread-list.react.js
+++ b/native/chat/chat-thread-list.react.js
@@ -92,6 +92,7 @@
   +scrollPos: { current: number },
   +hardwareBack: () => boolean,
   +chatThreadList: React.Node,
+  +onTabPress: () => void,
 };
 
 class ChatThreadList extends React.PureComponent<Props> {
@@ -116,7 +117,7 @@
     const tabNavigation: ?TabNavigationProp<'Chat'> =
       chatNavigation.getParent();
     invariant(tabNavigation, 'ChatNavigator should be within TabNavigator');
-    tabNavigation.addListener('tabPress', this.onTabPress);
+    tabNavigation.addListener('tabPress', this.props.onTabPress);
 
     BackHandler.addEventListener('hardwareBackPress', this.props.hardwareBack);
   }
@@ -130,7 +131,7 @@
     const tabNavigation: ?TabNavigationProp<'Chat'> =
       chatNavigation.getParent();
     invariant(tabNavigation, 'ChatNavigator should be within TabNavigator');
-    tabNavigation.removeListener('tabPress', this.onTabPress);
+    tabNavigation.removeListener('tabPress', this.props.onTabPress);
 
     BackHandler.removeEventListener(
       'hardwareBackPress',
@@ -167,17 +168,6 @@
     }
   }
 
-  onTabPress = () => {
-    if (!this.props.navigation.isFocused()) {
-      return;
-    }
-    if (this.props.scrollPos.current > 0 && this.flatList) {
-      this.flatList.scrollToOffset({ offset: 0, animated: true });
-    } else if (this.props.route.name === BackgroundChatThreadListRouteName) {
-      this.props.navigation.navigate({ name: HomeChatThreadListRouteName });
-    }
-  };
-
   render() {
     return this.props.chatThreadList;
   }
@@ -561,6 +551,17 @@
     ],
   );
 
+  const onTabPress = React.useCallback(() => {
+    if (!navigation.isFocused()) {
+      return;
+    }
+    if (scrollPos.current > 0 && flatListRef.current) {
+      flatListRef.current.scrollToOffset({ offset: 0, animated: true });
+    } else if (route.name === BackgroundChatThreadListRouteName) {
+      navigation.navigate({ name: HomeChatThreadListRouteName });
+    }
+  }, [navigation, route.name]);
+
   return (
     <ChatThreadList
       navigation={navigation}
@@ -574,6 +575,7 @@
       scrollPos={scrollPos}
       hardwareBack={hardwareBack}
       chatThreadList={chatThreadList}
+      onTabPress={onTabPress}
     />
   );
 }