Lorsque je clique sur le bouton surélevé, le sélecteur de temps s'affiche. Maintenant, si j'attends 5 secondes et que je confirme l'heure, cette erreur se produit. setState() appelé après dispose()
Je vois littéralement dans la console comment flutter met à jour les widgets parents, mais pourquoi ? - Je ne fais rien, j'attends juste 5 secondes ! Cet exemple fonctionnera dans un projet normal, mais dans mon projet, qui est beaucoup plus complexe, il ne fonctionnera pas car flutter met à jour les états pendant que j'attends... Qu'est-ce que j'ai fait de mal ? Quelqu'un a-t-il une idée de ce qui pourrait expliquer que flutter mette à jour les états de manière aléatoire dans mon projet plus complexe et pas dans un projet simple ?
[MISE À JOUR] J'ai vérifié que la mise à jour se fait à partir du niveau où se trouvent ma TabBar et ma TabBarView. Cela pourrait-il avoir un rapport avec l'élément " avec TickerProviderStateMixin "dont j'ai besoin pour la vue de la barre d'onglets ? Cela pourrait-il être dû au fait que l'application se rafraîchit régulièrement et de manière aléatoire ?
class DateTimeButton extends State<DateTimeButtonWidget> {
DateTime selectedDate = new DateTime.now();
Future initTimePicker() async {
final TimeOfDay picked = await showTimePicker(
context: context,
initialTime: new TimeOfDay(hour: selectedDate.hour, minute: selectedDate.minute),
);
if (picked != null) {
setState(() {
selectedDate = new DateTime(selectedDate.year, selectedDate.month, selectedDate.day, picked.hour, picked.minute);
});
}
}
@override
Widget build(BuildContext context) {
return new RaisedButton(
child: new Text("${selectedDate.hour} ${selectedDate.minute}"),
onPressed: () {
initTimePicker();
}
);
}
}
0 votes
"avec TickerProviderStateMixin" - oui, je pense que cela entraîne la reconstruction de votre widget.