Register a screen in a Router. Use it in an app with component routes, rather than file routes.

Register a parameterized detail screen

tsx
import { Link, Route, Router, Text, VStack, routes, type RouteTo, type ScreenProps } from 'kuito';

declare module 'kuito' {
  interface Routes {
    index: RouteTo;
    show: RouteTo<{ id: number }>;
    settings: RouteTo;
  }
}

function Home() {
  return (
    <VStack padding={16}>
      <Link to={routes.show({ id: 42 })}>
        <Text>Show 42</Text>
      </Link>
    </VStack>
  );
}

function Show({ id }: ScreenProps<{ id: number }>) {
  return <Text padding={16}>{`Show ${id}`}</Text>;
}

function Settings() {
  return <Text padding={16}>Settings</Text>;
}

export default function App() {
  return (
    <Router>
      <Route name="index" path="/" screen={Home} title="Home" />
      <Route
        name="show"
        path="/show/:id"
        params={{ id: Number }}
        screen={Show}
        title={({ id }) => `Show ${id}`}
      />
      <Route name="settings" path="/settings" screen={Settings} presentation="sheet" />
    </Router>
  );
}

Behavior

name identifies the destination, path matches links, and screen renders it. Declare parameter types with params. Route is navigation configuration rather than a visible layout container.

Continue

Read Navigation for a complete workflow. See the complete prop reference for types and documented defaults.

Referenz

Signaturen

ts
<P extends object, R>(_props: RouteProps<P, R>): KuitoNode

Typparameter

NameEinschränkungStandard
Pobject—
R——

Parameter

NameTypErforderlichBeschreibung
_propsRouteProps<P, R>Ja—

Rückgabe

KuitoNode

Props: RouteProps<P, R>

Props (einschließlich geerbter Props) 10

NameTypErforderlichBeschreibung
namestringJaIts key in routes.
pathstringJaSegments, :name params and a final *name: what a deep link's path matches.
params{ [K in keyof P]?: ParamType; }NeinHow a link's text parses into each param; a path param left out is a string.
screenComponent<ScreenProps<P, R>>Ja—
titlestring | ((params: P) => string)NeinThe native header's title.
presentationPresentationNein—
backgroundColorstringNeinThe screen's color, under the bars too; the platform's background without.
snapPointsreadonly SnapPoint[]NeinA sheet route's heights, as <Sheet snapPoints> takes them; the platform's default without.
headerfalse | ScreenHeader | ((params: P) => false | ScreenHeader)NeinThe native header: false hides it; its items, large title and search otherwise (docs/navigation.md#headers).
systemBarsSystemBarsPropsNeinThe system bars while this screen is focused, as a <SystemBars>'s props (docs/system-ui.md).
screen — Methodensignaturen

Signaturen

ts
(props: ScreenProps<P, R>): KuitoNode

Parameter

NameTypErforderlichBeschreibung
propsScreenProps<P, R>Ja—

Rückgabe

KuitoNode

systemBars — verschachtelte Felder

systemBars Felder

NameTypErforderlichBeschreibung
statusBarStatusBarOptionsNeinThe status bar's content color, visibility and, on Android, color.
backgroundColorstringNeinThe root view's color, seen behind the app's views.
navigationBarColorstringNeinAndroid: drawn behind the navigation bar.
navigationBarButtonStyleNavigationBarButtonStyleNeinAndroid: light buttons for a dark navigation bar, dark buttons for a light one.
navigationBarHiddenbooleanNeinAndroid: hides the navigation bar; a swipe from the edge shows it for a moment.
immersivebooleanNeinFull screen: hides the status bar, the navigation bar and the home indicator, and on iOS edge swipes reach the app first. The entry's own props, and later entries, win over what it hides.
homeIndicatorAutoHiddenbooleanNeiniOS: lets the home indicator fade out while the user doesn't touch the screen.
statusBar — verschachtelte Felder

statusBar Felder

NameTypErforderlichBeschreibung
contentStatusBarContentNeinThe color of the status bar's text and icons.
hiddenbooleanNein—
animatedbooleanNeinWhether changes to content, hidden and backgroundColor animate.
transitionStatusBarTransitionNeiniOS: how showing and hiding animates, when animated.
backgroundColorstringNeinAndroid: drawn behind the status bar; a hex color.
translucentbooleanNeinAndroid: false lays the app out below the status bar instead of under it.
Generiert aus den öffentlichen TypeScript-Deklarationen: Signaturen, Props und Standardwerte stammen aus der geprüften Quelle, Beschreibungen aus deren JSDoc. Kein Standardwert ist erfunden.