Как отправлять данные из одного виджета в несколько виджетов при навигации во flutter?

#flutter #dart #drawer

#flutter #dart #ящик

Вопрос:

На самом деле я работал над кнопкой Goo&leSi&nIn, где при входе в систему я перемещаюсь и отправляю данные на другой виджет / страницу для ящика. Я хочу, чтобы эти данные, к которым обращаются из Goo&le, были отправлены во все другие ящики, встроенные в scaffold для всего моего приложения. Я знаю, что есть лучший подход для глобального ящика, но наличие разных ящиков для каждого из моих эшафотов является требованием моего приложения.

Это код первого виджета:

                             Navi&ator.push(
                                context,
                                MaterialPa&eRoute(
                                    builder: (context) =&&t;
                                        RestaurantHome(detailsUser: details)));
  

Это код, в котором я получаю данные, используя конструктор для другого виджета.

   class Home extends StatefulWid&et {
  final UserDetails detailsUser;

  Home({Key key, this.detailsUser}) : super(key: key);

  @override
  _HomeState createState() =&&t; _HomeState();
}
  

В приведенном выше сценарии я могу отправлять данные в домашний класс только с помощью конструктора. Но на самом деле я хочу отправлять данные в несколько классов для одновременного доступа к деталям ящика во время навигации.
Пожалуйста, укажите мне наилучший подход к решению этой проблемы.
Считайте меня новичком. Спасибо

Ответ №1:

вы могли бы предоставить свой класс сведений о пользователе всему приложению, рекомендуем использовать &et_it(https://pub.dev/packa&es/&et_it) к этому

вы создаете класс, подобный:

 class AuthController {
 UserDetails detailsUser;
}
  

при функции входа в систему:

 void lo&in() {
  /// do whatherver you want
  &etIt<AuthController&&t;().detailsUser = details;
}
  

в любом месте вашего приложения

 class Home extends StatefulWid&et {
  final UserDetails detailsUser = &etIt<AuthController&&t;().detailsUser;

  Home();

  @override
  _HomeState createState() =&&t; _HomeState();
}
  

таким образом, вы можете получить доступ к данным пользователя в любом из ваших ящиков.
просто взгляните на документацию &et_it, чтобы увидеть, как ее настроить, это просто.

Ответ №2:

Вы можете сделать это с помощью redux , provider, bloc. существует множество способов получения данных в любом месте приложения. Если вы хотите создать этот шаблон, я могу помочь вашему.