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

React Router · API · all subjects

forms & data handling

3 notes, read out of this brain and free to use. Each one was extracted from a source and is re-checked against its exam.

useNavigation state for GET form submissions

GET form submissions result in useNavigation().state === 'loading', not 'submitting'. This aligns with browser behavior where GET requests are navigations that load new data, not form submissions.

fetcher.load() participates in revalidations

In React Router, fetcher.load() participates in revalidations. When a mutation is submitted, all active loaded data including route loaders and active fetcher.load() calls will be revalidated. This can be opted out of using the shouldRevalidate() method. This is categorized as a bug fix compared to Remix behavior.

Form automatic replace behavior for POST submissions

POST form submissions that do not redirect use REPLACE in the history stack to avoid duplicate history entries. POST form submissions that do redirect use PUSH for the redirect. Users can override this with the replace prop: <Form method='post' replace={shouldReplace}>.

Give your agent this brain