'Flutter _dependants.isEmpty is not true
I have the following error randomly poping in my app after un logged in :

It's very random, sometimes in 5 times logging in it will appears 2 times, sometimes I can run the app dozens of times and have nothing.
Here is my main.dart :
void main() async {
WidgetsFlutterBinding.ensureInitialized();
SystemChrome.setEnabledSystemUIMode(
SystemUiMode.manual,
overlays: [],
);
return runApp(MyApp());
}
class HomePageController {
var updateHeaderBar;
var classifyTasks;
}
class MyApp extends StatefulWidget {
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
P3provider _p3provider = P3provider();
final HomePageController _controller = HomePageController();
@override
void initState() {
super.initState();
}
authentification() async {
await _p3provider.authentification();
}
getConnectedRessourceData() async {
await _p3provider.getConnectedRessourceData();
}
loadTasks() async {
await _p3provider.tasks();
print("longueur taches apres appel : " + ContextManager.tasks.length.toString());
}
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'beoticPROJECT',
theme: ThemeData(
primarySwatch: Colors.blue,
textTheme: Theme.of(context).textTheme.apply(
bodyColor: LightColors.kDarkBlue,
displayColor: LightColors.kDarkBlue,
fontFamily: 'Poppins'
),
),
home: LoginScreen(),
debugShowCheckedModeBanner: false,
);
}
}
And here is my login_page.dart (where there is my LoginScreen widget):
P3provider _p3provider = P3provider();
final HomePageController _controller = HomePageController();
Future<bool> authentification(String username, String password) async {
return await _p3provider.authentification2(username, password);
}
getConnectedRessourceData() async {
print("getConnectedRessourceData exécuté");
await _p3provider.getConnectedRessourceData();
}
loadTasks() async {
print("loadTasks exécuté");
await _p3provider.tasks();
print("longueur taches apres appel : " + ContextManager.tasks.length.toString());
}
Future<String> lostPassword(String username) async {
return await _p3provider.lostPassword(username);
}
class LoginScreen extends StatelessWidget {
Future<String?> _authUser(LoginData data) async {
debugPrint('Email: ${data.name}, Mot de passe: ${data.password}');
var authSuccessful = await authentification(data.name, data.password).then((value) {
getConnectedRessourceData();
loadTasks();
});
print("valeur authSuccessful: " + authSuccessful.toString());
if (ContextManager.isConnected == false) {
return 'Le nom d\'utilisateur ou le mot de passe est incorrect';
} else {
return null;
}
}
Future<String?> _recoverPassword(String name) async {
debugPrint('Name: $name');
var response = await lostPassword(name);
print("retour fonction : "+response.toString());
if (response == "1") {
return null;
} else {
return 'L\'utilisateur n\'existe pas';
}
}
@override
Widget build(BuildContext context) {
return FlutterLogin(
theme: LoginTheme(
titleStyle: TextStyle(
color: BeoColors.orange,
fontSize: 38.0
),
primaryColor: BeoColors.darkGreyBlue
),
title: 'beoticPROJECT',
logo: AssetImage('lib/src/media/img/beo_logo.png'),
onLogin: _authUser,
onSubmitAnimationCompleted: () {
Navigator.of(context).pushReplacement(MaterialPageRoute(
builder: (context) => HomePage(p3provider: _p3provider, controller: _controller,),
));
},
onRecoverPassword: _recoverPassword,
);
}
}
Any help would be appreciated.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
