Comments (3)
Thanks for the report @lukehutch
I am wondering if this use case / proposal is related to #128461 or #128384 ? or is it different ? If so, in which way ?
from flutter.
It's not really related to either of them: both of those issues were about how to solve a complex scheduling issue I had when I was trying to create a new type of reactive widget. The latter of those issues was probably caused by calling SchedulerBinding.instance.addPostFrameCallback
without first checking SchedulerBinding.instance.schedulerPhase
(which is fixed in my new safeSetState
).
This issue is much more general: I am trying to solve the red screen of death issue that I get when I accidentally call setState
on a widget that is no longer mounted, after an await
. I believe that that should never be an app-stopping error -- if a widget is no longer mounted, at a minimum setState
should just silently fail.
The extra scheduler phase check is simply to allow setState
to be scheduled to be run even during build
(which would generally be a bad idea, because build
should have no side effects). But the reason for doing this is so that safeSetState
can be called from any function, with the widget tree in any state.
Basically I am proposing that setState
should never throw an exception for any reason.
from flutter.
Thanks for the update.
from flutter.
Related Issues (20)
- win-11 low on disk space for Temp directory. HOT 1
- [iOS] Hot restart fails with native assets HOT 10
- [tool_crash] FileSystemException: Cannot open file, OS Error: The system cannot find the file specified., errno = 2 HOT 1
- Remove export of `hashValues` and `hashList` from `basic_types.dart`/`dart:ui` HOT 2
- Error getting Flutter sdk information HOT 3
- Implementations of `TextEditingController`s throw error HOT 4
- Flutter Web Bootstrapping fails after Upgrade to 3.22
- Missing class android.window.BackEvent HOT 2
- [Impeller] automatic resource layout tracking for Vulkan HOT 2
- [master] Channel fully broken? (_macros package error) HOT 5
- expression_evaluation_test is flaky in "expressions returning complex objects" HOT 12
- ListTile widgets when added as a children in ListView widget is scrolling outside its predefined space HOT 1
- I would like clarification on material 3 support in flutter HOT 4
- Flutter should log errors in vkCreateInstance HOT 1
- Migrate ButtonBar use in assets-for-api-docs/packages/diagrams/lib/src/card.dart
- mac-3 low on disk space. HOT 4
- 'Multiple widgets used the same GlobalKey' on Hot Reload When Using ShellRoute with Global Key and Builder Parameter HOT 8
- After upgrading to 3.22 Flutter Web ignores the -no-web-resources-cdn config HOT 2
- Improve fidelity of CupertinoCheckbox
- Web Build Busted After Upgrade HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from flutter.