Создаем портфолио за 1 месяц
К концу месяца: 4 классных проекта в вашем портфолио! Стоимость: 100$. Подробности...
759 of 1024 menu
◀ ▶

Класс 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.

Смотрите также

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить