Home / Function/ renderToStringImpl() — react Function Reference

renderToStringImpl() — react Function Reference

Architecture documentation for the renderToStringImpl() function in ReactDOMLegacyServerImpl.js from the react codebase.

Entity Profile

Dependency Diagram

graph TD
  a2131476_ce28_ca3e_82c7_78cceff93edb["renderToStringImpl()"]
  02c4299e_b30e_07d4_d500_7acc5ea7cd1c["ReactDOMLegacyServerImpl.js"]
  a2131476_ce28_ca3e_82c7_78cceff93edb -->|defined in| 02c4299e_b30e_07d4_d500_7acc5ea7cd1c
  style a2131476_ce28_ca3e_82c7_78cceff93edb fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/react-dom/src/server/ReactDOMLegacyServerImpl.js lines 35–101

function renderToStringImpl(
  children: ReactNodeList,
  options: void | ServerOptions,
  generateStaticMarkup: boolean,
  abortReason: string,
): string {
  let didFatal = false;
  let fatalError = null;
  let result = '';
  const destination = {
    // $FlowFixMe[missing-local-annot]
    push(chunk) {
      if (chunk !== null) {
        result += chunk;
      }
      return true;
    },
    // $FlowFixMe[missing-local-annot]
    destroy(error) {
      didFatal = true;
      fatalError = error;
    },
  };

  let readyToStream = false;
  function onShellReady() {
    readyToStream = true;
  }
  const resumableState = createResumableState(
    options ? options.identifierPrefix : undefined,
    undefined,
  );
  const request = createRequest(
    children,
    resumableState,
    createRenderState(resumableState, generateStaticMarkup),
    createRootFormatContext(),
    Infinity,
    onError,
    undefined,
    onShellReady,
    undefined,
    undefined,
    undefined,
  );
  startWork(request);
  // If anything suspended and is still pending, we'll abort it before writing.
  // That way we write only client-rendered boundaries from the start.
  abort(request, abortReason);
  startFlowing(request, destination);
  if (didFatal && fatalError !== abortReason) {
    throw fatalError;
  }

  if (!readyToStream) {
    // Note: This error message is the one we use on the client. It doesn't
    // really make sense here. But this is the legacy server renderer, anyway.
    // We're going to delete it soon.
    throw new Error(
      'A component suspended while responding to synchronous input. This ' +
        'will cause the UI to be replaced with a loading indicator. To fix, ' +
        'updates that suspend should be wrapped with startTransition.',
    );
  }

  return result;
}

Domain

Subdomains

Frequently Asked Questions

What does renderToStringImpl() do?
renderToStringImpl() is a function in the react codebase, defined in packages/react-dom/src/server/ReactDOMLegacyServerImpl.js.
Where is renderToStringImpl() defined?
renderToStringImpl() is defined in packages/react-dom/src/server/ReactDOMLegacyServerImpl.js at line 35.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free