Flutter: почему данные обновляются при переходе к другому действию?

#flutter

#флаттер

Вопрос:

Структура моего проекта Flutter выглядит следующим образом

 Main() //Run App with MaterialApp and Routes
L HomePage() //Default route (/), with BottomNavigation
  L MoviesPage() //Default BottomNavigation Index and shows a list of movies form TMDB 
    L DetailsMoviesPage()
  L SeriesPage()
    L DetailsSeriesPage()
  L SupportPage()
    L DetailsSupporPage()
  

Обновление данных было остановлено при переходе между вкладками, но при переходе от к или навигатору от MoviesPage() к DetailsMoviesPage() SeriesPage() или навигатору от DetailsSeriesPage()
SupportPage() to DetailsSupporPage() создается HomePage() , и все действия обновляются, а также при записи в текстовое поле, расположенное в процессе обновления HomePage() ?

 body: _childnav[_currentIndex],
      bottomNavigationBar: BottomNavigationBar(
        onTap: onTabPressed,
        currentIndex: _currentIndex, //this property defines current active tab
        items: [
          BottomNavigationBarItem(
              icon: Icon(Icons.movie), title: Text('Movies')),
          BottomNavigationBarItem(icon: Icon(Icons.tv), title: Text('Series')),
          BottomNavigationBarItem(icon: Icon(Icons.help), title: Text('Help'))
        ],
      ),
  

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

1. Использование Provider или Riverpod управление состоянием.

2. Одна из альтернатив — использовать @override bool get wantKeepAlive => true ; таким образом, ваши страницы извлекают информацию только один раз, однако имейте в виду, что эта альтернатива работает только для вкладок или общих виджетов на экране.

3. вероятно, вы вызываете setState({}) inside onTabPressed , поэтому это вызовет build метод, который заставит вас создавать виджеты заново