#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. существует множество способов получения данных в любом месте приложения. Если вы хотите создать этот шаблон, я могу помочь вашему.