В моем ящике есть два действия, если пользователь вошел в систему, он покажет информацию о пользователе, в противном случае появится всплывающее окно входа в систему, поэтому я хочу вызвать setState при открытии ящика, как показано ниже:
clickLeftMenu: (BuildContext mainContext) {
LoginInfo.checkLogin(mainContext).then((islogin) {
print(islogin.toString());
if (!islogin)
showLogin(mainContext, true);
else{
Scaffold.of(mainContext).openDrawer();
setState(() {
//I want to update the user login info for rebuild screen for show
loginInfo = LoginInfo.getInfo();
});
}
});
},
показать информацию о пользователе с объектом loginInfo в ящике:
ListTile(
leading: Icon(Icons.account_circle,
color: Theme.of(context).primaryColor,
size: setWidth(context, 8.0)),
title: Text(
loginInfo.name ?? '',
//loginInfo. != null ? loginInfo.email : '',
style: TextStyle(
fontSize: 20.0,
color: Theme.of(context).primaryColor,
),
),
subtitle: Text(
loginInfo.email ?? '',
style: TextStyle(
fontSize: 10.0,
//color: this.primaryColor,
),
),
),
, но когда я позвонил, это не удалось, покажите ошибку ниже:
setState() or markNeedsBuild() called when widget tree was locked.
This _ModalScope<dynamic> widget cannot be marked as needing to build because the framework is locked
Я пробовал много способовно все же не удалось, у вас есть какие-либо идеи или другие способы сделать это?
Спасибо !!