Reputation:
I'm trying to open my warning dialog automatically when a user go to details screen but some reason I'm getting setState() or markNeedsBuild() called during build error in the screen (pic). I would be really appreciated if I can get any suggestion or help on how I should fix this error.
return Scaffold(
appBar: AppBarWidget(
appBar: AppBar(),
showReorder: false,
),
body: BaseView<CardViewModel>(
onDeactivate: (model) {},
onDispose: (model) {},
onModelReady: (model) {
model.getCard();
},
builder: (context, model, child) {
setState(() {
isLargeScreen = false;
if (model.cards.current != true) {
if (model.cards.alreadyShow == false) {
Future.delayed(Duration.zero, () {
staticwarningDialog(context);
});
}
}
});
return _body(model, height, width, context, widget.cardName);
},
));
Upvotes: 0
Views: 143
Reputation: 432
You can move your setState
method to initState
like this. Remember don't use setState method on build.
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback(
(_) {
setState(() {
// Your code
});
},
);
}
Upvotes: 2