React Router API Reference
    Preparing search index...

    Function unstable_routeRSCServerRequest

    • Routes the incoming Request to the RSC server and appropriately proxies the server response for data / resource requests, or renders to HTML for a document request.

      Parameters

      • opts: {
            createFromReadableStream: unstable_SSRCreateFromReadableStreamFunction;
            hydrate?: boolean;
            renderHTML: (
                getPayload: () => DecodedPayload,
                options: {
                    onError(error: unknown): undefined | string;
                    onHeaders(headers: Headers): void;
                },
            ) => ReadableStream<Uint8Array>
            | Promise<ReadableStream<Uint8Array>>;
            request: Request;
            serverResponse: Response;
        }

        Options

        • createFromReadableStream: unstable_SSRCreateFromReadableStreamFunction

          Your react-server-dom-xyz/client's createFromReadableStream function, used to decode payloads from the server.

        • Optionalhydrate?: boolean

          Whether to hydrate the server response with the RSC payload. Defaults to true.

        • renderHTML: (
              getPayload: () => DecodedPayload,
              options: {
                  onError(error: unknown): undefined | string;
                  onHeaders(headers: Headers): void;
              },
          ) => ReadableStream<Uint8Array>
          | Promise<ReadableStream<Uint8Array>>

          A function that renders the unstable_RSCPayload to HTML, usually using a <RSCStaticRouter>.

        • request: Request

          The request to route.

        • serverResponse: Response

          A Response or partial response generated by the RSC handler containing a serialized unstable_RSCPayload.

      Returns Promise<Response>

      A Response that either contains the RSC payload for data requests, or renders the HTML for document requests.

      import { createFromReadableStream } from "@vitejs/plugin-rsc/ssr";
      import * as ReactDomServer from "react-dom/server.edge";
      import {
      unstable_RSCStaticRouter as RSCStaticRouter,
      unstable_routeRSCServerRequest as routeRSCServerRequest,
      } from "react-router";

      routeRSCServerRequest({
      request,
      serverResponse,
      createFromReadableStream,
      async renderHTML(getPayload) {
      const payload = getPayload();

      return await renderHTMLToReadableStream(
      <RSCStaticRouter getPayload={getPayload} />,
      {
      bootstrapScriptContent,
      formState: await payload.formState,
      }
      );
      },
      });

      unstable_routeRSCServerRequest

      data