TextEditingController werden in build() erzeugt (Leaks, Cursor-Spruenge) #7
Labels
No labels
bug
critical
database
duplicate
enhancement
help wanted
invalid
performance
question
refactoring
security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Aceless/RecipePlanner#7
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
An mehreren Stellen wird ein
TextEditingControllerdirekt inbuild()bzw. in einer ausbuild()aufgerufenen Methode angelegt:ModernWeekField.build-app/lib/widgets/modern_week_field.dart:55ModernDateField.build-app/lib/widgets/modern_date_field.dart:45_buildIngredientItem-app/lib/screens/recipe_edit_screen.dart:453-455_buildInstructionItem-app/lib/screens/recipe_edit_screen.dart:544Folgen: bei jedem Rebuild entsteht ein neuer Controller, der alte wird nie disposed. Cursorposition und Selektion springen an den Anfang, der Fokus kann verloren gehen, sobald irgendein
setStateausgeloest wird - im Rezept-Editor also beim Hinzufuegen einer Zutat, beim Aendern der Schwierigkeit oder beim Setzen eines Tags.Vorschlag:
ModernWeekField/ModernDateFieldaufStatefulWidgetumstellen oder ganz ohne Controller ueberInputDecoratorrendernrecipe_edit_screenController-Listen im State halten (parallel zu_ingredients/_instructions), indispose()aufraeumen und den ListenelementenValueKeygebenBehoben auf Branch
frontend-improvements.ModernWeekField und ModernDateField sind StatefulWidgets; die Controller der Zutaten- und Schrittzeilen liegen im State, werden mit der Zeile entfernt und in dispose freigegeben.
Commits
47edeebAdded Claude9b16a6eEinstellungen mit Ladebalken, url_launcher-Plugin-Registrierung8ad68a4Settings erreichbar, Secrets sichern, Theme-Tokens, toter Code weg, Testsbf204d3Rezeptliste, Detail, Vorschlaege und Spaces ueberarbeitend85c681Rezept-Editor: Absturz, stiller Datenverlust und Controller-Leaks behebend970fbeProvider-State korrigieren, Fehler sichtbar machen, Wochenlogik zentralisieren71e557dStart entkoppeln, API-Client haerten, Theme auf Tokens umstellenflutter analyze: 0 Issues.flutter test: 22 Tests gruen.