Как вернуться к предыдущему экрану и перезагрузить все функции первого экрана?

#flutter

#flutter

Вопрос:

У меня проблема. Как вернуться к предыдущему экрану и перезагрузить все функции первого экрана?

На странице 1 у меня есть несколько функций для загрузки всех данных из json и вычислений. И когда пользователь переходит на страницу 2 и выполняет вставку в json, и когда пользователь возвращается на страницу 1, перезагрузите все функции на странице 1.

У меня есть функция, подобная приведенной ниже:

 Future<void> CountBalanced() {
    ListDetailPaymentTransactions(global.strtransidtrans);
    global.doubbalanced = global.inttotalpayment - global.doubtranstotaltrans;
    print(global.inttotalpayment - global.doubtranstotaltrans);
}
  

В настоящее время я нашел этот код:

 Navigator.push(context, MaterialPageRoute(builder: (context) => CashPayment())).whenComplete(CountBalanced);
  

Но проблема в том, что когда пользователь возвращается на страницу 1, функции выполняются постоянно и не останавливаются.

Я заметил это, когда попытался распечатать результат.

Есть ли какой-нибудь способ остановить это? И есть ли лучший способ перезагрузить все функции на странице 1?

Ответ №1:

Для остановки вашей функции при навигации попробуйте удалить их

  @override
  void dispose() {
    super.dispose();
  }
  

К перезагрузке методов

 @override
  void didUpdateWidget(ClassName oldWidget) {
    super.didUpdateWidget(oldWidget);
    if (comparision) {

     //your initState
    }
  }
  

Для получения дополнительной информации
https://docs.flutter.io/flutter/widgets/State/didUpdateWidget.html