useNavigationController
Verwenden Sie diesen Hook, um auf den Navigationscontroller der App zuzugreifen. Dieser Controller dient als zentraler Punkt für:
- Zugriff auf die aufgelöste Konfiguration von Sammlungen und Ansichten.
- Auflösung von Pfaden und IDs (z.B. Konvertierung eines URL-Pfads in einen Datenbankpfad).
- Programmatische Navigation.
Verwendung
Abschnitt betitelt „Verwendung“import React from "react";import { useNavigationController } from "@firecms/core";import { Button } from "@firecms/ui";
export function NavigationExample() { const navigationController = useNavigationController();
const goToProducts = () => { // Zur Produktsammlung navigieren // Dies übernimmt das korrekte Routing intern navigationController.navigate("/c/products"); };
// Sie können Sammlungen auch über ihre ID abrufen const productsCollection = navigationController.getCollection("products");
return ( <div> <p>Name der Produktsammlung: {productsCollection?.name}</p> <Button onClick={goToProducts}>Zu Produkten</Button> </div> );}Wichtige Methoden & Eigenschaften
Abschnitt betitelt „Wichtige Methoden & Eigenschaften“collections: Liste aller aufgelösten Entitätssammlungen.views: Liste der benutzerdefinierten Top-Level-Ansichten.getCollection(pathOrId, includeUserOverride?): Eine Sammlung über ihreidoder ihrenpathabrufen.navigate(to, options?): Zu einer bestimmten Route navigieren.refreshNavigation(): Neuberechnung der Navigationsstruktur erzwingen (nützlich bei dynamischen Sammlungen).urlPathToDataPath(cmsPath): Eine CMS-URL in einen Datenquellenpfad umwandeln.- Beispiel:
/c/products/B34SAP8Z->products/B34SAP8Z
- Beispiel:
buildUrlCollectionPath(path): Einen Datenquellenpfad in eine CMS-URL umwandeln.- Beispiel:
products->/c/products
- Beispiel:
resolveIdsFrom(pathWithAliases): Aliase in einem Pfad zu ihren tatsächlichen IDs auflösen.
NavigationController-Schnittstelle
Abschnitt betitelt „NavigationController-Schnittstelle“export type NavigationController = { collections?: EntityCollection[]; views?: CMSView[]; loading: boolean; initialised: boolean;
getCollection: (pathOrId: string, includeUserOverride?: boolean) => EntityCollection | undefined; getCollectionById: (id: string) => EntityCollection | undefined;
navigate: (to: string, options?: NavigateOptions) => void; refreshNavigation: () => void;
// ... Hilfsmethoden für die Pfadauflösung}