分支
主 (6.23.1)dev
版本
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,因此建議你總是提供你自己的備用元素。