Explore Library
ReactHooks

109 items

1

Stale Closure in useCallback

Code Quiz
2

useMemo vs useCallback

Quiz
3

Debounce Hook Stale Closure

Code Quiz
4

Stable Values with useRef vs useMemo

Quiz
5

Interval Counter Stuck at One

Code Quiz
6

useEffect Cleanup Timing & Dependencies

Quiz
7

Core Hooks & Rules of Hooks

Slides / Video
8

Core Hooks & Rules of Hooks

Flashcard
9

Memoization, Refs & Custom Hooks

Slides / Video
10

Memoization vs Refs in Custom Hooks

Flashcard
11

Custom Hook Rules Violation

Code Quiz
12

Custom Hooks & Rules of Hooks

Quiz
13

useEffect Infinite Loop Bug

Code Quiz
14

useEffect Dependency Array Behavior

Quiz
15

Updating State on Click

Code Quiz
16

Rules of Hooks

Quiz
17

useState & useEffect Basics

Slides / Video
18

useState & useEffect Basics

Flashcard
19

useState, useEffect & Rules of Hooks

Slides / Video
20

Hooks Essentials

Flashcard
21

useEffect Infinite Loop

Code Quiz
22

useEffect for Side Effects

Quiz
23

Counter with useState

Code Quiz
24

useState Basics

Quiz
25

useMemo, useCallback & Custom Hooks

Slides / Video
26

useState & useEffect Fundamentals

Slides / Video
27

useMemo, useCallback & Custom Hooks

Flashcard
28

useState & useEffect Fundamentals

Flashcard
29

Lifecycle & Re-rendering with Hooks

Slides / Video
30

When Do Components Re-render?

Quiz
31

Re-rendering Basics with Hooks

Flashcard
32

useEffect for Side Effects

Slides / Video
33

useMemo for Memoizing Values

Slides / Video
34

useReducer for Complex State Logic

Slides / Video
35

useState Basic Update Bug

Code Quiz
36

useReducer Mutation Bug

Code Quiz
37

useEffect Basics

Quiz
38

useLayoutEffect vs useEffect

Quiz
39

Functional State Updates

Quiz
40

useRef for Mutable Values

Quiz
41

Rules of Hooks Ordering

Quiz
42

Stale Closures in Hooks

Quiz
43

useRef for DOM References

Quiz
44

useMemo Memoization

Quiz
45

Lazy Initial State

Quiz
46

useEffect Cleanup Function

Quiz
47

Hooks Only in Function Components

Quiz
48

useEffect Dependency Array

Quiz
49

Effect Run Timing

Quiz
50

Custom Hooks Creation

Quiz
51

Conditional Hook Call Pitfalls

Quiz
52

useContext Hook

Quiz
53

State Batching in Event Handlers

Quiz
54

useReducer Hook

Quiz
55

useCallback Memoization

Quiz
56

useState Hook Basics

Quiz
57

useRef for Mutable Values and DOM Access

Slides / Video
58

useContext for Consuming Context

Slides / Video
59

useEffect Cleanup Functions

Slides / Video
60

useEffect Dependency Array Behavior

Slides / Video
61

Functional Updates with useState

Slides / Video
62

useState for Local Component State

Slides / Video
63

What Hooks Are and Rules of Hooks

Slides / Video
64

useState vs useReducer

Slides / Video
65

Mount-Only Effect

Code Quiz
66

useLayoutEffect Timing

Code Quiz
67

Object State Update

Code Quiz
68

Immutable Array Update

Code Quiz
69

State Batching

Code Quiz
70

Custom Hook

Code Quiz
71

useCallback Usage

Code Quiz
72

useMemo Dependencies

Code Quiz
73

useRef Value

Code Quiz
74

Consuming Context

Code Quiz
75

Rules of Hooks

Code Quiz
76

Stale Closure

Code Quiz
77

Effect Cleanup

Code Quiz
78

Dependency Array

Code Quiz
79

Basic Effect Execution

Code Quiz
80

Lazy Initial State

Code Quiz
81

Functional Updates

Code Quiz
82

Previous Value Ref

Code Quiz
83

Dependencies and Stale Closures

Slides / Video
84

Custom Hooks for Reusable Logic

Slides / Video
85

useCallback for Memoizing Functions

Slides / Video
86

useEffect Dependencies

Flashcard
87

Effect Run Timing

Flashcard
88

Custom Hooks

Flashcard
89

useImperativeHandle

Flashcard
90

Rules of Hooks

Flashcard
91

Functional State Updates

Flashcard
92

useEffect Basics

Flashcard
93

useReducer Hook

Flashcard
94

useReducer vs useState

Flashcard
95

useRef vs State

Flashcard
96

useMemo Basics

Flashcard
97

useCallback Basics

Flashcard
98

useMemo vs useCallback

Flashcard
99

Custom Hooks vs HOCs

Flashcard
100

Stale Closures

Flashcard
101

Batching State Updates

Flashcard
102

Lazy Initial State

Flashcard
103

Preserving Hook Order

Flashcard
104

useRef Uses

Flashcard
105

useContext Hook

Flashcard
106

useEffect Cleanup

Flashcard
107

useState Basics

Flashcard
108

useLayoutEffect vs useEffect

Flashcard
109

Why Hooks Replaced Lifecycles

Flashcard
Code Quiz

Debounce Hook Stale Closure

A custom debounced-callback hook silently calls an outdated version of the callback.

Codejavascript
function useDebouncedCallback(callback, delay) {
  const timer = useRef(null);

  return useCallback((...args) => {
    if (timer.current) clearTimeout(timer.current);
    timer.current = setTimeout(() => {
      callback(...args);
    }, delay);
  }, [delay]);
}

// Usage
function SearchBox() {
  const [query, setQuery] = useState('');
  const [count, setCount] = useState(0);

  const debouncedLog = useDebouncedCallback(() => {
    console.log(query, count);
  }, 500);

  return (
    <input
      value={query}
      onChange={e => { setQuery(e.target.value); debouncedLog(); }}
    />
  );
}

What is the bug in this custom hook?