fix: Package flame_riverpod, setState() or markNeedsBuild() called during build. #2943
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.
Description
The forceRebuild function now has an "isDirty" check to determine whether setState should be called. Previously, setState was uncritically invoked which could produce the Flutter framework error that occurs when setState is called while widgets are still being rebuilt.
The setState call inside ref.watch has been replaced with a call to forceRebuild, and forceRebuild now has checks to prevent setState from being called while a build is in progress. A persistent frame callback has been added to reset supporting flags.
Checklist
docs
and added dartdoc comments with///
.examples
ordocs
.Breaking Change?
Related Issues
N/A. Customer reported issue via Discord.