115 items
Data Fetching Race Condition
Code QuizEffect Race Conditions & Cleanup
QuizCustom Hook Filter Never Updates
Code QuizWhy Hook Call Order Matters
QuizHooks Internals & Rules
Slides / VideoWhy Hooks Depend on Call Order
FlashcardStale Closure in useCallback
Code QuizuseMemo vs useCallback
QuizDebounce Hook Stale Closure
Code QuizStable Values with useRef vs useMemo
QuizInterval Counter Stuck at One
Code QuizuseEffect Cleanup Timing & Dependencies
QuizCore Hooks & Rules of Hooks
Slides / VideoCore Hooks & Rules of Hooks
FlashcardMemoization, Refs & Custom Hooks
Slides / VideoMemoization vs Refs in Custom Hooks
FlashcardCustom Hook Rules Violation
Code QuizCustom Hooks & Rules of Hooks
QuizuseEffect Infinite Loop Bug
Code QuizuseEffect Dependency Array Behavior
QuizUpdating State on Click
Code QuizRules of Hooks
QuizuseState & useEffect Basics
Slides / VideouseState & useEffect Basics
FlashcarduseState, useEffect & Rules of Hooks
Slides / VideoHooks Essentials
FlashcarduseEffect Infinite Loop
Code QuizuseEffect for Side Effects
QuizCounter with useState
Code QuizuseState Basics
QuizuseMemo, useCallback & Custom Hooks
Slides / VideouseState & useEffect Fundamentals
Slides / VideouseMemo, useCallback & Custom Hooks
FlashcarduseState & useEffect Fundamentals
FlashcardLifecycle & Re-rendering with Hooks
Slides / VideoWhen Do Components Re-render?
QuizRe-rendering Basics with Hooks
FlashcarduseEffect for Side Effects
Slides / VideouseMemo for Memoizing Values
Slides / VideouseReducer for Complex State Logic
Slides / VideouseReducer Mutation Bug
Code QuizuseState Basic Update Bug
Code QuizuseState Hook Basics
QuizLazy Initial State
QuizuseMemo Memoization
QuizuseRef for DOM References
QuizStale Closures in Hooks
QuizRules of Hooks Ordering
QuizuseRef for Mutable Values
QuizFunctional State Updates
QuizuseLayoutEffect vs useEffect
QuizuseCallback Memoization
QuizuseEffect Cleanup Function
QuizHooks Only in Function Components
QuizuseEffect Dependency Array
QuizEffect Run Timing
QuizCustom Hooks Creation
QuizConditional Hook Call Pitfalls
QuizuseContext Hook
QuizState Batching in Event Handlers
QuizuseReducer Hook
QuizuseEffect Basics
QuizuseRef for Mutable Values and DOM Access
Slides / VideouseContext for Consuming Context
Slides / VideouseEffect Cleanup Functions
Slides / VideouseEffect Dependency Array Behavior
Slides / VideoFunctional Updates with useState
Slides / VideouseState for Local Component State
Slides / VideoWhat Hooks Are and Rules of Hooks
Slides / VideouseState vs useReducer
Slides / VideoState Batching
Code QuizBasic Effect Execution
Code QuizuseMemo Dependencies
Code QuizuseLayoutEffect Timing
Code QuizImmutable Array Update
Code QuizFunctional Updates
Code QuizuseRef Value
Code QuizEffect Cleanup
Code QuizLazy Initial State
Code QuizStale Closure
Code QuizObject State Update
Code QuizCustom Hook
Code QuizuseCallback Usage
Code QuizPrevious Value Ref
Code QuizDependency Array
Code QuizRules of Hooks
Code QuizConsuming Context
Code QuizMount-Only Effect
Code QuizDependencies and Stale Closures
Slides / VideoCustom Hooks for Reusable Logic
Slides / VideouseCallback for Memoizing Functions
Slides / VideouseEffect Dependencies
FlashcarduseReducer Hook
FlashcardLazy Initial State
FlashcarduseContext Hook
FlashcardPreserving Hook Order
FlashcardStale Closures
FlashcarduseRef vs State
FlashcarduseMemo Basics
FlashcardCustom Hooks
FlashcarduseEffect Cleanup
FlashcardCustom Hooks vs HOCs
FlashcarduseMemo vs useCallback
FlashcarduseCallback Basics
FlashcardBatching State Updates
FlashcarduseEffect Basics
FlashcardEffect Run Timing
FlashcardRules of Hooks
FlashcarduseImperativeHandle
FlashcardFunctional State Updates
FlashcardWhy Hooks Replaced Lifecycles
FlashcarduseState Basics
FlashcarduseReducer vs useState
FlashcarduseLayoutEffect vs useEffect
FlashcarduseRef Uses
FlashcardCustom Hook Rules Violation
Spot the rules-of-hooks violation inside a custom hook that conditionally calls useState.
function useUserData(userId) {
if (!userId) {
return null;
}
const [user, setUser] = useState(null);
useEffect(() => {
fetchUser(userId).then(setUser);
}, [userId]);
return user;
}
function Profile({ userId }) {
const user = useUserData(userId);
return <div>{user?.name}</div>;
}What is the bug in this custom hook?