setState() or markNeedsBuild() called during build. Flutter Provider Package

Issue

homepage.dart

@override
void initState() {
super.initState();    
_userProfile = Provider.of<UserDataProvider>(context,listen: false).userData;
if (_userProfile['isPaid'] == false) {
  Navigator.of(context).pushNamed(PaymentScreen.routeName);
 }
}

Error

setState() or markNeedsBuild() called during build.

This error is bugging me. Please help me resolve this.
Thanks.

Solution

You can use your code as below:

@override
void initState() {
super.initState();    
Future.delayed(Duration.zero, (){
  _userProfile = Provider.of<UserDataProvider>(context,listen: false).userData;
  if (_userProfile['isPaid'] == false) {
    Navigator.of(context).pushNamed(PaymentScreen.routeName);
  }
 });
}

Answered By – Reza M

Answer Checked By – Mildred Charles (FlutterFixes Admin)

Leave a Reply

Your email address will not be published. Required fields are marked *