Руководства

Первый типизированный Route

Контракты Destination и Route Definition, Mount, владение Session и ожидание типизированного результата.

v0.1.0-dev.2Начальный уровень

Первый типизированный Route

Установите пакет и подключите публичную библиотеку:

shell
flutter pub add ark_navigation:^0.1.0-dev.2

1. Опишите намерение и результат

Создайте HomeDestination extends NavigationDestination<void> и ProductDestination extends NavigationDestination<bool>. Проверенные параметры должны быть полями самого Destination.

2. Свяжите Page и URI

Создайте NavigationRouteDefinition для каждого Destination. pageBuilder получает типизированное значение. Кодек добавляется, если Route должен поддерживать веб-адреса, восстановление или ссылки платформы.

3. Соберите Graph

Создайте корневой Scope, поместите Route Definition в Module функциональной части приложения и смонтируйте Module в корень. Module владеет определениями Route, приложение — их положением.

4. Определите владельца Session

Создайте стабильную Session в initState, передайте session.routerConfig в MaterialApp.router и закройте Session в dispose().

5. Выполните переход

dart
final ticket = context.readNavigation.push<bool>(
  const ProductDestination(productId: 'keyboard-42'),
);
await ticket.committed;
final completion = await ticket.completed;

Вызовите pop(result: true). Вызывающий код получит bool?, а не Object? или значение из Map.

ARKTELOS

Инженерные системы для программного обеспечения, которое обязано выдерживать нагрузку.