All quizzesMedium
ISR & Revalidation — Series 2
Preview — 3 of 10 questions
A page has three sibling <Suspense> boundaries whose components resolve after 100ms, 500ms, and 200ms. In what order does the content appear?
javascript
<Suspense fallback={<Skeleton />}><SlowPanel /></Suspense> {/* 500ms */}
<Suspense fallback={<Skeleton />}><FastPanel /></Suspense> {/* 100ms */}
<Suspense fallback={<Skeleton />}><MediumPanel /></Suspense> {/* 200ms */}AAll three appear at once when the slowest resolves
BIn reverse order of resolve time
CStrictly in JSX source order, each waiting for the previous
DIn the order they resolve — the 100ms panel first, then 200ms, then 500ms — each streaming in independently as soon as its own data is ready, regardless of JSX position
How do you show a Submitting… state on a submit button without lifting useState into the form component?
ACall useFormStatus() (from react-dom) inside a Client Component nested within the <form> — it reads the enclosing form's { pending, data, method, action }
BCheck document.activeElement in a useEffect
CRead formData.get('pending') in the Server Action
DSet disabled permanently and clear it on a timeout
How do you display a validation error returned by a Server Action, tied to the failed submission?
AWrite the error into a global Zustand store from the Server Action
BWrap the form's onSubmit in a client try/catch
CWrap the action with useActionState(action, initialState) — the action returns { error }, that value becomes the hook's state, and the component renders the message from it, no manual client wiring
DRead window.lastFormError set by the Server Action
Sign up free to play
Answer all 10 questions (7 more), see explanations for every answer, and track your score.