04/07/2026
If your React Native list feels slow, stop reaching for useMemo. The problem is usually the list component itself.
Everyone starts with FlatList because that’s what every tutorial uses. But once your list gets big, FlatList does a lot more work as you scroll — and that’s your lag. The fix is swapping it for FlashList from Shopify, which recycles rows far more efficiently. On large lists the difference is obvious, and the API is almost identical. Just don’t forget estimatedItemSize.
I wasted way too long optimizing components when changing one import would’ve given me the biggest win. So before you touch useMemo or useCallback, ask whether you’re optimizing your components — or the thing rendering them.
What’s the React Native performance trap that wasted your time?