Fix: Add mounted checks to prevent widget lifecycle errors #151
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
Widgets could encounter runtime errors when
setState()
was called on unmounted widgets. This typically occurred in asynchronous callbacks, handler events, or during widget disposal, leading to exceptions.Test case
There is a list item that has a `FlutterSlider` and a delete button on it. Try deleting the list item while sliding.setState exception and stacktrace
AnimationController exception and stacktrace
Solution
Added
if (!mounted)
early return checks at the entry point of all methods that could be called asynchronously or during widget disposal. This single approach protects against bothsetState
andAnimationController
errors.This change improves widget stability and prevents crash scenarios in production apps.