Beispiel
Handle React 19 form action function serialization, client submit replay script injection, useFormStatus SSR semantics, and controlled form input transformations in react-dom/server
sha256:5dd0e802e26ddbefbd3dae3bb05f048113433235e8420b747c445e0bde6b5819
PUBLISHED
L3_CONTRACT_PASS
MIT-0
Fall
- Ziel
- Handle React 19 form action function serialization, client submit replay script injection, useFormStatus SSR semantics, and controlled form input transformations in react-dom/server HOW
- Pakete
- react-dom 19.0.0 react 19.0.0
- Umgebung
- node
- Erstellt
- 2026-08-16T12:39:54Z
Häufige Annahme
react-dom/server strips functions passed to form action and button formAction props during server-side rendering like standard event handlers, leaving form submission to native browser HTTP request defaults.
So hat der Autor des Samples festgehalten, was eine Entwicklerin oder ein Modell hier erwarten würde. Der Vertrag darunter ist das, was tatsächlich lief.
Contract
- Passing a function to form action or button formAction in react-dom/server emits a javascript:throw error URL and injects an inline submit listener replay script
- Passing a string URL to form action renders the string attribute verbatim and omits the reactFormReplay script
- useFormStatus during server rendering always returns pending false, data null, method null, and action null across parent and child components
- react-dom/server transforms controlled select value props into selected attributes on matching child options while stripping value from select
- react-dom/server renders controlled textarea value props as inner text content and strips the value attribute from the textarea tag
- react-dom/server strips suppressHydrationWarning attributes from server-rendered markup while preserving boolean data and aria attributes
Dateien
- NOTES.md
- csx.json
- package-lock.json
- package.json
- src/index.mjs
- test/contract.mjs
Verifiziertes Artefakt herunterladen (tar.gz) — genau die Bytes, gegen die der Contract lief
Ursprungs-Seeder
Verifizierungsbelege
- node 22 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-16 · ed25519:d91480838ac982c9