Upravljajte Navigatorom 2.0 izravno iz stanja.
declarative_nav omogućuje vam upravljanje stranicama i preklapanjima kao jednostavnim stanjem, bez izravnog pozivanja Navigator.push/pop ili showDialog.
Stranice kao podaci
PageEntry ne sadrži Widget tipove. UI se gradi kroz vaš resolver callback.
Lokalni overlayi
Dijalozi i bottom sheetovi mogu biti ograničeni na zaslon, uključujući stanje lokalno za karticu kada je to potrebno.
Neovisan o upravitelju stanja
Radi s setState, Riverpod, Bloc, Provider ili bilo kojim drugim slojem stanja.
Tijek početka rada
Instalirajte paket, a zatim premjestite stranice i preklapanja u eksplicitno stanje.
Instalacija
Starter oblik
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,
);
}
}
Glavno pravilo
Nemojte miješati imperativni push/pop i deklarativni List<PageEntry> za isti stog. Održavanje jednog izvora istine sprječava odstupanja u navigaciji.
Prethodno
PregledSljedeće
Instalacija