99 items
Custom 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 QuizuseReducer Hook
QuizuseEffect Basics
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
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
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 / VideouseRef Value
Code QuizuseLayoutEffect Timing
Code QuizObject State Update
Code QuizImmutable Array Update
Code QuizState Batching
Code QuizCustom Hook
Code QuizuseCallback Usage
Code QuizuseMemo Dependencies
Code QuizConsuming Context
Code QuizRules of Hooks
Code QuizStale Closure
Code QuizMount-Only Effect
Code QuizEffect Cleanup
Code QuizDependency Array
Code QuizBasic Effect Execution
Code QuizLazy Initial State
Code QuizFunctional Updates
Code QuizPrevious Value Ref
Code QuizDependencies and Stale Closures
Slides / VideoCustom Hooks for Reusable Logic
Slides / VideouseCallback for Memoizing Functions
Slides / VideoCustom Hooks
FlashcarduseImperativeHandle
FlashcardRules of Hooks
FlashcardFunctional State Updates
FlashcarduseEffect Basics
FlashcarduseReducer Hook
FlashcardPreserving Hook Order
FlashcarduseRef vs State
FlashcarduseMemo Basics
FlashcarduseCallback Basics
FlashcarduseMemo vs useCallback
FlashcardCustom Hooks vs HOCs
FlashcardStale Closures
FlashcarduseContext Hook
FlashcarduseReducer vs useState
FlashcarduseEffect Dependencies
FlashcardEffect Run Timing
FlashcarduseRef Uses
FlashcarduseState Basics
FlashcardWhy Hooks Replaced Lifecycles
FlashcarduseLayoutEffect vs useEffect
FlashcarduseEffect Cleanup
FlashcardLazy Initial State
FlashcardBatching State Updates
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?