P?ginas y resolvedor

Store solo metadata en PageEntry. Use buildPage a map each page key a an actual widget.

Serializable state

PageEntry is plain data, so navigation state can be logged, diffed, y replayed.

Simple resolver

A switch on page.key keeps routing explicit y reviewable.

One source de truth

Push y pop are list operations on _pages, not side effects.

Resolver Pattern

Build by page key y mutate the page list declaratively.

Page State Rule

Resolver ejemplo

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')]);
}
Keep Metadata Lean

Avoid placing Widget instances into navigation state y keep PageEntry as pure metadata para maintainability.