Как предотвратить удаление экрана при использовании BottomNavigationBar в Flutter?

#flutter #dart

#flutter #dart

Вопрос:

У меня есть простая асинхронная функция, и я вызываю эту функцию в своем initState. Эта функция считывает мою базу данных Firebase Firestore, и я хочу, чтобы количество операций чтения было как можно меньше. Но при использовании BottomNavigationBar и навигации с помощью body: _widgetOptions.ElementAt(index) экран удаляется при каждом переходе на новый экран. Когда я возвращаюсь к исходному экрану, снова вызывается initState, и мои данные загружаются снова, хотя это не то, что мне нужно или чего я хочу.

У кого-нибудь есть решение или советы?

Заранее спасибо!

Ответ №1:

Вы можете установить глобальную логическую переменную в своем провайдере. Допустим, isCalled имеет значение по умолчанию false . Затем вы можете проверить, есть ли isCalled это false перед вызовом вашего метода. И затем вы можете установить его в значение true после вызова вашего метода.

Комментарии:

1. Я делаю много сложных функций, но не мог придумать ничего подобного.. лол, большое спасибо!