push/pop 與頁面混用
對已由 List<PageEntry> 管理的堆疊,不要呼叫 Navigator.push/pop。
狀態中的 Widget
不要把 Widget 實例放進頁面 metadata。只保留 key 與類似路由的識別字。
重複的 key
不要在同一個堆疊中重複使用相同的 PageEntry.key 值。
遷移檢查清單
在重構審查期間使用這份檢查清單,以保持架構一致。
檢查清單
好與壞
// 壞:同一個堆疊混用命令式與宣告式做法
Navigator.of(context).push(...);
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
// 好:只更新宣告式狀態
setState(() {
_pages = [..._pages, const PageEntry(key: 'detail', name: '/detail')];
});
審查提示
在 code review 時,請追蹤 stack 變更的責任歸屬 並拒絕透過多個 API 變更同一個堆疊的修改。