Класс RouteInformation
Класс RouteInformation описывает текущий адрес
для
Router.
Поле uri задаёт путь и query.
Поле state хранит произвольный объект состояния.
Парсер читает RouteInformation в
parseRouteInformation.
Синтаксис
RouteInformation(
uri: Uri.parse('/detail?id=1'),
state: 'abcde',
)
Параметры
| Параметр | Описание |
|---|---|
uri |
Адрес страницы, который видит браузер или система. |
state |
Дополнительные данные маршрута, которые не входят в адрес. |
Пример
Давайте выведем path из RouteInformation:
import 'package:flutter/material.dart';
void main()
{
final info = RouteInformation(
uri: Uri.parse('/detail'),
);
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Text(info.uri.path),
),
),
),
);
}
На экране по центру '/detail'.
Пример
Давайте положим state и прочитаем его в парсере:
import 'package:flutter/material.dart';
class IdConfig
{
IdConfig(this.id);
final String id;
}
class IdParser extends RouteInformationParser<IdConfig>
{
@override
Future<IdConfig> parseRouteInformation(
RouteInformation routeInformation,
) async {
var id = routeInformation.state as String? ?? '12345';
return IdConfig(id);
}
@override
RouteInformation restoreRouteInformation(IdConfig configuration) {
return RouteInformation(
uri: Uri.parse('/item'),
state: configuration.id,
);
}
}
void main()
{
var parser = IdParser();
parser.parseRouteInformation(
const RouteInformation(
uri: Uri.parse('/item'),
state: 'abcde',
),
).then((cfg) {
runApp(
MaterialApp(
home: Scaffold(
body: Center(
child: Text(cfg.id),
),
),
),
);
});
}
На экране по центру 'abcde' из поля state RouteInformation.
Смотрите также
-
класс
RouteInformationParser,
разбираетRouteInformation -
метод
restoreRouteInformation,
собираетRouteInformationобратно -
класс
RouterDelegate,
получает конфигурацию после парсинга -
класс
RouteSettings,
имя и arguments у императивныхRoute