AceDevHub
Advanced React Interview QuestionsAdvancedScenario

React · Question 79

Why must Promises passed to React use be cached or reused across renders?

Direct answer

Creating a fresh Promise during every render gives React a different resource each time, which can cause repeated suspension; use a cached Promise, framework data source, or Promise passed from a Server Component.

Albums.jsx
function Albums() {
  // Avoid: a new Promise is created every render.
  const albums = use(fetch("/api/albums"));

  return <AlbumList albums={albums} />;
}

The component needs a stable resource identity so React can retry rendering against the same asynchronous work instead of continuously discovering a brand-new pending Promise.