I want to show an alert dialog after I get data from StreamBuilder. I also have a UI to render. Currently, I'm having an error like this when I'm trying to build dialog inside _loadUI
method before returning actual UI.
setState() or markNeedsBuild() called during build.
Code:
if (dataSnapshot.hasData) {
return dataSnapshot.data ? _loadUI(dataSnapshot.data) : _emptyView();
}
You can do like this:
void _loadUI(snapshot) {
...
WidgetsBinding.instance.addPostFrameCallback((_){
showDialog(
context: context,
...
);
});
}
addPostFrameCallback run during a frame, just after the persistent frame callbacks (which is when the main rendering pipeline has been flushed).