主分支
分支
主分支 (6.23.1)开发分支
版本
6.23.1v4/5.xv3.x
hydrateFallbackElement

hydrateFallbackElement

如果您正在使用 服务器端渲染 并且您正在利用 部分水合,那么您可以在应用程序的初始水合期间为未水合的路由指定一个要渲染的元素/组件。

如果您不想指定 React 元素(例如,hydrateFallbackElement={<MyFallback />}),您可以改为指定 HydrateFallback 组件(例如,HydrateFallback={MyFallback}),React Router 会在内部为您调用 createElement

此功能仅在使用数据路由器时有效,请参阅 选择路由器

let router = createBrowserRouter(
  [
    {
      id: "root",
      path: "/",
      loader: rootLoader,
      Component: Root,
      children: [
        {
          id: "invoice",
          path: "invoices/:id",
          loader: loadInvoice,
          Component: Invoice,
          HydrateFallback: InvoiceSkeleton,
        },
      ],
    },
  ],
  {
    future: {
      v7_partialHydration: true,
    },
    hydrationData: {
      root: {
        /*...*/
      },
      // No hydration data provided for the `invoice` route
    },
  }
);

没有默认的回退,它将在该路由级别渲染 null,因此建议您始终提供自己的回退元素。

文档和示例 CC 4.0