diff --git a/packages/next/server/view-render.tsx b/packages/next/server/view-render.tsx index ad8f2b1f52ff..fbbac3d3151e 100644 --- a/packages/next/server/view-render.tsx +++ b/packages/next/server/view-render.tsx @@ -219,9 +219,19 @@ export async function renderToHTML( const hasConcurrentFeatures = !!runtime const pageIsDynamic = isDynamicRoute(pathname) const components = Object.keys(ComponentMod.components) + .filter((path) => { + const { __flight__, __flight_router_path__: routerPath } = query + // Rendering part of the page is only allowed for flight data + if (__flight__ !== undefined && routerPath) { + // TODO: check the actual path + const pathLength = path.length + return pathLength >= routerPath.length + } + return true + }) .sort() - .map((key) => { - const mod = ComponentMod.components[key]() + .map((path) => { + const mod = ComponentMod.components[path]() mod.Component = mod.default || mod return mod })