36 items
Memoized List Item Still Re-renders
Code QuizDiagnosing FlatList Scroll Jank
QuizReact Native Rendering Performance Internals
Slides / VideoRendering Performance Fundamentals
FlashcardNative Driver Animation Gotcha
Code QuizNative Driver Animation Limits
QuizThree Pillars of RN Performance
FlashcardReact Native Performance Essentials
Slides / VideoNative Driver Animation Jank
Code QuizNative Driver Animations & JS Thread Jank
QuizFlatList Performance Props
FlashcardFlatList Performance Optimization
Slides / VideoKilling Jank in React Native
Slides / VideoEliminating Jank in React Native
FlashcardFlatList memoization broken by inline callback
Code QuizFlatList Re-render & Thread Optimization
QuizFlatList & Keys Performance Basics
Slides / VideoFlatList Keys for List Performance
FlashcardProfiling React Native Performance
Slides / VideoJS Thread vs UI Thread & FlatList Tuning
FlashcardFlatList Memoization Broken
Code QuizFlatList Performance Optimization
QuizReact Native Rendering Performance
Slides / VideoOptimizing FlatList & Re-renders
FlashcardFlatList vs FlashList Windowing Internals
QuizFlatList vs FlashList Virtualization
FlashcardFlatList vs FlashList Windowing Internals
Slides / VideoHermes Engine Internals Deep Dive
Slides / VideoHermes Bytecode, GC, and Startup Internals
QuizHermes Engine Internals
FlashcardProfiling Frame Drops in React Native
Slides / VideoDiagnosing UI Frame Drops in React Native
QuizProfiling Frame Drops in React Native
FlashcardReact Native Threading Model
QuizReact Native Threading Model
Slides / VideoReact Native Threading Model
FlashcardNative Driver Animation Gotcha
Spot the bug in an Animated view that tries to use the native driver.
import React, { useRef, useEffect } from 'react';
import { Animated } from 'react-native';
function ExpandingBox() {
const height = useRef(new Animated.Value(50)).current;
useEffect(() => {
Animated.timing(height, {
toValue: 200,
duration: 300,
useNativeDriver: true,
}).start();
}, [height]);
return <Animated.View style={{ width: 100, height, backgroundColor: 'tomato' }} />;
}
export default ExpandingBox;What is the bug that prevents this animation from working correctly?