Hydrates a server rendered unstable_RSCPayload in the browser.
import { startTransition, StrictMode } from "react"; import { hydrateRoot } from "react-dom/client"; import { unstable_getRSCStream as getRSCStream, unstable_RSCHydratedRouter as RSCHydratedRouter, } from "react-router"; import type { unstable_RSCPayload as RSCPayload } from "react-router"; createFromReadableStream(getRSCStream()).then((payload) => startTransition(async () => { hydrateRoot( document, <StrictMode> <RSCHydratedRouter createFromReadableStream={createFromReadableStream} payload={payload} /> </StrictMode>, { formState: await getFormState(payload) }, ); }), ); function RSCHydratedRouter({ createFromReadableStream, fetch: fetchImplementation = fetch, payload, routeDiscovery = "eager", getContext, }: RSCHydratedRouterProps) Your react-server-dom-xyz/client's createFromReadableStream function, used to decode payloads from the server.
Optional fetch implementation. Defaults to global fetch.
A function that returns an RouterContextProvider instance which is provided as the context argument to client actions, loaders and middleware. This function is called to generate a fresh context instance on each navigation or fetcher call.
The decoded unstable_RSCPayload to hydrate.
"eager" or "lazy" - Determines if links are eagerly discovered, or delayed until clicked.