Nicht disposte Controller und Navigator-Nutzung nach pop() #18

Closed
opened 2026-09-09 20:12:46 +00:00 by Aceless · 1 comment
Owner

Nicht disposte TextEditingController:

  • login_screen.dart:17-18 - _emailController, _passwordController, kein dispose() im State
  • register_screen.dart:17-19 - drei Controller, kein dispose()
  • daily_plan_screen.dart:492 - _showCustomMealDialog
  • weekly_plan_screen.dart:332 - _showCustomMealDialog
  • space_selection_screen.dart:25-26 - _showCreateSpaceDialog
  • recipe_edit_screen.dart:658 - _showImportDialog

Context nach pop() weiterverwendet:

onTap: () {
  Navigator.of(context).pop();
  Navigator.of(context).push(MaterialPageRoute(...));  // context ist bereits deaktiviert
},

in daily_plan_screen.dart:451-461 und weekly_plan_screen.dart:284-294. Der Navigator sollte vor dem pop() in eine lokale Variable geholt werden.

Bottom Sheet bleibt offen: _showCustomMealDialog wird aus dem Sheet heraus geoeffnet, ohne das Sheet zu poppen. Nach "Hinzufuegen" schliesst nur der Dialog, das Sheet bleibt stehen.

Der Analyzer meldet zusaetzlich use_build_context_synchronously in settings_screen.dart:368,375,426 und space_selection_screen.dart:94.

**Nicht disposte `TextEditingController`:** - `login_screen.dart:17-18` - `_emailController`, `_passwordController`, kein `dispose()` im State - `register_screen.dart:17-19` - drei Controller, kein `dispose()` - `daily_plan_screen.dart:492` - `_showCustomMealDialog` - `weekly_plan_screen.dart:332` - `_showCustomMealDialog` - `space_selection_screen.dart:25-26` - `_showCreateSpaceDialog` - `recipe_edit_screen.dart:658` - `_showImportDialog` **Context nach `pop()` weiterverwendet:** ```dart onTap: () { Navigator.of(context).pop(); Navigator.of(context).push(MaterialPageRoute(...)); // context ist bereits deaktiviert }, ``` in `daily_plan_screen.dart:451-461` und `weekly_plan_screen.dart:284-294`. Der Navigator sollte vor dem `pop()` in eine lokale Variable geholt werden. **Bottom Sheet bleibt offen:** `_showCustomMealDialog` wird aus dem Sheet heraus geoeffnet, ohne das Sheet zu poppen. Nach "Hinzufuegen" schliesst nur der Dialog, das Sheet bleibt stehen. **Der Analyzer meldet zusaetzlich `use_build_context_synchronously`** in `settings_screen.dart:368,375,426` und `space_selection_screen.dart:94`.
Author
Owner

Behoben auf Branch frontend-improvements.

Alle genannten Controller werden freigegeben, der Navigator wird vor pop() gegriffen, und das Bottom Sheet schliesst vor dem Dialog.

Commits
  • 47edeeb Added Claude
  • 9b16a6e Einstellungen mit Ladebalken, url_launcher-Plugin-Registrierung
  • 8ad68a4 Settings erreichbar, Secrets sichern, Theme-Tokens, toter Code weg, Tests
  • bf204d3 Rezeptliste, Detail, Vorschlaege und Spaces ueberarbeiten
  • d85c681 Rezept-Editor: Absturz, stiller Datenverlust und Controller-Leaks beheben
  • d970fbe Provider-State korrigieren, Fehler sichtbar machen, Wochenlogik zentralisieren
  • 71e557d Start entkoppeln, API-Client haerten, Theme auf Tokens umstellen

flutter analyze: 0 Issues. flutter test: 22 Tests gruen.

Behoben auf Branch `frontend-improvements`. Alle genannten Controller werden freigegeben, der Navigator wird vor pop() gegriffen, und das Bottom Sheet schliesst vor dem Dialog. <details><summary>Commits</summary> - 47edeeb Added Claude - 9b16a6e Einstellungen mit Ladebalken, url_launcher-Plugin-Registrierung - 8ad68a4 Settings erreichbar, Secrets sichern, Theme-Tokens, toter Code weg, Tests - bf204d3 Rezeptliste, Detail, Vorschlaege und Spaces ueberarbeiten - d85c681 Rezept-Editor: Absturz, stiller Datenverlust und Controller-Leaks beheben - d970fbe Provider-State korrigieren, Fehler sichtbar machen, Wochenlogik zentralisieren - 71e557d Start entkoppeln, API-Client haerten, Theme auf Tokens umstellen </details> `flutter analyze`: 0 Issues. `flutter test`: 22 Tests gruen.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Aceless/RecipePlanner#18
No description provided.