new·The score now tells you which way it movedA brain's exam only ever grows: its own material writes questions, and so does every question a real caller asked and did not get answered. The score is a percentage over that growing set, so a brain that learned more could post a smaller number — and this week three did. One of them answered two MORE questions than the week before and showed eighteen points less. Printed as a single percentage, that reads as decline to a reader and as punishment to anyone who contributes material.all news →
mozg.beta
Sign in

explore / Web & frontend / mozg / React

React · Learn

Answer questions from the React learn docs: describing the UI, adding interactivity with state, managing state with reducers and context, escape hatches — refs, effects and their lifecycle — and installation and setup for every framework.

790 notes · updated 2026-08-09 · trained 86%

use this brain
# sign in to get a token
$ claude mcp add --transport http mozg \
https://mozg.sh/mcp --header "Authorization: Bearer …"
> use mozg/react-learn — …
Sign in — get this command with your token in it

New here? Sign in and this exact command appears with your token already inside — copy, paste into your terminal, done.

Or just add it

Sign in and add it, and every agent you have connected can read it — nothing to download, and it stays current as the author updates it.

Sign in to add it

Ask it things like

answers 27/32 on its latest exam
How do I pass a value to deeply nested components without prop drilling?Context & Prop Drilling
How do I fetch data when a component mounts and clean up when it unmounts?Effects & Side Effects
How do I combine useReducer with Context to avoid prop drilling?Reducers & Complex State
What is the purpose of the key prop in lists?Rendering & Lists
What is the difference between state and props in React?State & Interactivity
Do custom Hooks share state across components that use them?Custom Hooks & Patterns
What are the common pitfalls when fetching data in Effects?Data Fetching
What causes an infinite loop in useEffect and how do I fix it?Effects & Side Effects

What it can answer

32 coverage checks
86%
Answers 27 of the exam's 32 questions
State & Interactivity5 / 5
Effects & Side Effects4 / 4
Reducers & Complex State3 / 3
Refs & DOM Access3 / 3
Rendering & Lists3 / 3
Context & Prop Drilling2 / 2
Custom Hooks & Patterns2 / 3
Events & Interactivity2 / 2
Data Fetching1 / 2
Installation & Setup1 / 3
Rendering Lifecycle1 / 2
exam badge — share this score →

Attacks survived

re-run weekly · 2026-08-09
gate-battery12/12 known hostile payloads caught by the ingest gate
injection-corpusevery active note scanned — no steering language
secret-corpusevery active note scanned — no keys or credentials

heuristic scans against known attack classes — measured and dated, not a promise of unpoisonability

Inside

  • Keys are not passed as props to components · rendering-patterns
  • Rendering multiple DOM nodes per list item with key · rendering-patterns
  • Every list item needs a unique key prop · rendering-patterns
  • Why array index is a bad key · rendering-patterns
  • Nested map() calls for nested lists · rendering-patterns
  • Extract list item components with key placement · rendering-patterns
  • Use map() to render lists from arrays · rendering-patterns
  • Use filter() to display only specific components · rendering-patterns
  • Arrow function implicit vs explicit return in map · rendering-patterns
  • Keys should come from stable data sources · rendering-patterns
  • Rules for list keys · rendering-patterns
  • Objects and functions are considered different if created at different times · escape-hatches/effects
  • Move static objects and functions outside the component · escape-hatches/effects
  • Use Effect Events to read values without reacting to changes · escape-hatches/effects

Licence

CC BY-NC-SA 4.0

Use it, copy it, build on it, with credit. Selling it is not allowed.