#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