Vadiet Navigator 2.0 no stāvokļa.
declarative_nav ļauj pārvaldīt lapas un pārklājumus kā vienkāršu stāvokli, neizsaucot Navigator.push/pop vai showDialog tieši.
Lapas kā dati
PageEntry nesatur Widget tipus. UI tiek izveidots, izmantojot jūsu resolver atzvanu.
Ekrānam lokāli pārklājumi
Dialogu un paneļu apgabalu var ierobežot katram ekrānam, tostarp cilnes lokālajam stāvoklim pēc vajadzības.
Neatkarīgs no stāvokļa pārvaldības
Strādā ar setState, Riverpod, Bloc, Provider vai jebkuru citu stāvokļa slāni.
Darba sākšanas gaita
Instalējiet pakotni, pēc tam pārvietojiet lapas un pārklājumus uz eksplicītu stāvokli.
Instalēšana
Sākuma struktūra
class AppRootState extends State<AppRoot> {
OverlayRequest? _overlay;
late List<PageEntry> _pages;
@override
void initState() {
super.initState();
_pages = const [PageEntry(key: 'home', name: '/home')];
}
Widget build(BuildContext context) {
return DeclarativePagesNavigator(
pages: _pages,
buildPage: _buildPage,
onPopTop: _popTop,
canPopTop: () => _overlay == null,
);
}
}
Pamatnoteikums
Nejauciet imperatīvo push/pop un deklaratīvo List<PageEntry> vienam un tam pašam stekam. Viena patiesības avota saglabāšana novērš navigācijas nobīdi.
Iepriekš
OSSTālāk
Instalēšana