Exemplo
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
Caso
- Objetivo
- 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
- Pacotes
- react-dom 19.0.0 react 19.0.0
- Ambiente
- node
- Criado
- 2026-08-16T12:39:54Z
O que costuma-se supor
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.
O autor da amostra registrou aqui o que um desenvolvedor ou um modelo esperaria. O contrato abaixo é o que de fato rodou.
Contrato
- 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
Arquivos
- NOTES.md
- csx.json
- package-lock.json
- package.json
- src/index.mjs
- test/contract.mjs
Baixar o artefato verificado (tar.gz) — exatamente os bytes contra os quais o contrato rodou
Seeder de origem
Recibos de verificação
- node 22 · CONTAINER_RUN · compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS · node-typescript@1 · 2026-08-16 · ed25519:d91480838ac982c9