Anddyms
Anddyms

Reputation: 13

The instance 'widget' can't be accessed in an initializer

I'm having trouble accessing the variable user on _MenuScreenState:

class MenuScreen extends StatefulWidget {
  final User user;
  
  MenuScreen(this.user);
  @override
  _MenuScreenState createState() => _MenuScreenState();
}

class _MenuScreenState extends State<MenuScreen> {
  final User userInMenu = widget.user;
}

The problem displayed is "The instance member 'widget' can't be accessed in an initializer. Try replacing the reference to the instance member with a different expression".

Upvotes: 1

Views: 2398

Answers (1)

Ziyad Mansy
Ziyad Mansy

Reputation: 437

You have to do it inside initState like the following:

class MenuScreen extends StatefulWidget {
  final User user;
  
  MenuScreen(this.user);
  @override
  _MenuScreenState createState() => _MenuScreenState();
}

class _MenuScreenState extends State<MenuScreen> {
  User userInMenu = widget.user;

  @override
  void initState() {
    super.initState();
    userInMenu = widget.user;
  }

Upvotes: 4

Related Questions