Skip to content

[Bug]: Component causing incorrect re-renders #10283

@brophdawg11

Description

@brophdawg11

What version of React Router are you using?

6.9.0

Steps to Reproduce

Original Discord thread

let router = createBrowserRouter([
  {
    path: "/",
    Component: Layout,
    children: [
      {
        index: true,
        Component: Index,
      },
      {
        path: "a",
        Component: A,
      },
    ],
  },
]);

export default function App() {
  return <RouterProvider router={router} />;
}

function Layout() {
  console.log("rendering Layout");
  return (
    <>
      <Link to="/">Home</Link>&nbsp;&nbsp;
      <Link to="a">A</Link>&nbsp;&nbsp;
      <Outlet />
    </>
  );
}

function Index() {
  console.log("rendering Index");
  return <h1>Index</h1>;
}

function A() {
  console.log("rendering A");
  return <h1>A</h1>;
}

Expected Behavior

Component shouldn't cause additional re-renders compared to element

Actual Behavior

Component causes additional re-renders because React.createElement is re-called each time

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions