Как я могу установить переменную из навигатора в глобальную, чтобы она была доступна на всех страницах приложения flutter?

#flutter #dart

Вопрос:

Я отправил эти данные на страницу, но я не могу отправить их снова с помощью навигации, так как я перемещаюсь по bottomnavigationbar ней .

 Navigator.pushReplacement(
        context,
        MaterialPageRoute(
          builder: (BuildContext context) => ContactPage(
            username: username.text,
            userId: userId,
          ),
        ),
      );
 

затем я нажимаю на кнопку bottomnavigationbar , чтобы перейти на другую страницу, в этом случае она пуста…. и я не могу сохранить ее в навигации… Я не знаю, как к этому подступиться.

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

1. Это username а TextEditingController ?

2. нет, это было взято с первой страницы.

Ответ №1:

создайте список виджетов, подобных этому

 List<Widget> _children() => [
HomePageScreen(name: username.text),
SettingScreen(),
 

];

чтобы использовать этот список, следуйте этому коду:

 Widget build(BuildContext context)
{

final List<Widget> children = _children( );

return Scaffold
(
    
    body: children[currentIndex],
    
)
 

}

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

1. я этого не понимаю

2. Чтобы сделать переменную глобальной, вы можете напрямую объявить эту переменную в основном классе после инструкции import, затем эту переменную можно использовать в любом классе, даже если вы можете изменить ее значение, Извините за предыдущее решение, я думал, что вы хотите передать ее на вкладке bottomnavigaiton