ಡೇಟಾ ಆಗಿ ಪುಟಗಳು, resolver ಮೂಲಕ UI
PageEntry ನಲ್ಲಿ ಕೇವಲ ಮೆಟಾಡೇಟಾವನ್ನು ಉಳಿಸಿ. ಪ್ರತಿಯೊಂದು ಪುಟದ ಕೀಲಿಯನ್ನು ನಿಜವಾದ widget ಗೆ ಮ್ಯಾಪ್ ಮಾಡಲು buildPage ಬಳಸಿ.
ಸೀರಿಯಲೈಸ್ ಮಾಡಬಹುದಾದ ಸ್ಥಿತಿ
PageEntry ಸಾದಾ ಡೇಟಾ, ಆದ್ದರಿಂದ navigation state ಅನ್ನು log, diff ಮತ್ತು replay ಮಾಡಬಹುದು.
ಸರಳ resolver
page.key ಮೇಲಿನ switch routing ಅನ್ನು ಸ್ಪಷ್ಟ ಮತ್ತು ವಿಮರ್ಶಿಸಬಹುದಾಗಿ ಇಡುತ್ತದೆ.
ಒಂದೇ ಸತ್ಯದ ಮೂಲ
Push ಮತ್ತು pop _pages ಪಟ್ಟಿಯ ಮೇಲಿನ ಕಾರ್ಯಗಳು, side effects ಅಲ್ಲ.
Resolver pattern
ಪುಟದ ಕೀಲಿಯ ಆಧಾರದಲ್ಲಿ ನಿರ್ಮಿಸಿ ಮತ್ತು ಪುಟಗಳ ಪಟ್ಟಿಯನ್ನು declaratively ಬದಲಾಯಿಸಿ.
ಆಜ್ಞೆ
Resolver ಉದಾಹರಣೆ
Widget _buildPage(BuildContext context, PageEntry page) {
switch (page.key) {
case 'home':
return HomePage(onGoDetail: _goDetail);
case 'detail':
return const DetailPage();
default:
return const SizedBox.shrink();
}
}
void _goDetail() {
setState(() => _pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')]);
}
ಮೆಟಾಡೇಟಾವನ್ನು ಹಗುರವಾಗಿಡಿ
ಇಡುವುದನ್ನು ತಪ್ಪಿಸಿ Widget ಉದಾಹರಣೆಗಳನ್ನು navigation state ಗೆ ಮತ್ತು ನಿರ್ವಹಣೆಗೆ ಅನುಕೂಲವಾಗುವಂತೆ PageEntry ಅನ್ನು ಶುದ್ಧ metadata ಆಗಿ ಇಡಿ.
ಹಿಂದಿನದು
ಇನ್ಸ್ಟಾಲೇಶನ್ಮುಂದಿನದು
Resolverಗಳು