Флаттер: Триггеры таймера: Необработанное Исключение: Поиск предка деактивированного виджета небезопасен

#flutter #flutter-navigation #flutter-http

Вопрос:

У меня проблема с таймером. Я использую его для перезагрузки данных каждые 500 миллисекунд. Но когда я перехожу на следующую страницу, флаттер выдает мне эту ошибку: Необработанное исключение: Поиск предка деактивированного виджета небезопасен.

Я инициализирую таймер в методе initState, а также удаляю его. Вы можете увидеть мой код ниже. Я перехожу на следующую страницу из WebVersion и MobileVersion.

У кого-нибудь была такая же проблема?

 class SelectState extends StatefulWidget{   @override  _SelectStateState createState() =gt; _SelectStateState(); }  class _SelectStateState extends Statelt;SelectStategt; {   late MyData myData;  late Futurelt;voidgt; initMyData;  Timer? timer;   @override  void initState() {  super.initState();  //TODO Timeout  initMyData = initData().timeout(Duration(seconds: 5));  //if(mounted){  timer = Timer.periodic(Duration(milliseconds: 500), (timer) {  if(mounted){  refreshMyData();  }  });  //}  }   @override  void dispose(){  super.dispose();  timer?.cancel();  }   @override  Widget build(BuildContext context) {  return FutureBuilderlt;voidgt;(  future: initMyData,  builder: (context,snapshot){  if(snapshot.connectionState == ConnectionState.done){  if(MyData.data != ''){  final provider = Provider.oflt;LocaleProvidergt;(context);  final locale = provider.locale;  Listlt;StateDescriptiongt; entries = getArray(myData.data, locale, myData.text);  return kIsWeb? WebVersion(entries: entries)  :MobileVersion(entries: entries);  }  else{  return buildFailedConnectionContainer(context);  }  }else if(snapshot.hasError){  return buildTimedOutContainer(context);  }  else{  return LoadingWidget();  }  });  }   Futurelt;voidgt; initData() async{  await getData(context,true).then((value){  setState(() {  myData = value;  });  });  }   void refreshMyData(){  if(mounted){  getData(context,false).then((value){  if(mounted){  setState(() {  myData = value;  });  }  });  }  }  }