将 unstable_RSCPayload
预渲染为 HTML。通常在 unstable_routeRSCServerRequest
的 renderHTML
回调中使用。
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,
fetchServer,
createFromReadableStream,
async renderHTML(getPayload) {
const payload = await getPayload();
return await renderHTMLToReadableStream(
<RSCStaticRouter getPayload={getPayload} />,
{
bootstrapScriptContent,
formState: await getFormState(payload),
}
);
},
});
function RSCStaticRouter({ getPayload }: RSCStaticRouterProps)
一个开始解码 unstable_RSCPayload
的函数。通常从 unstable_routeRSCServerRequest
的 renderHTML
传入。