您好,我是flutter和bloc的新手,我想我有2个屏幕(登录和主屏幕)。在登录屏幕中,我正在使用bloc来发布数据,我想在主屏幕中调用该数据。有人可以给我榜样吗?
答案 0 :(得分:1)
如果您只想将值从登录页面传递到首页,则可以执行以下操作:
class Home extends StatelessWidget {
final String username;
Home(this.username);
@override
Widget build(BuildContext context) {
return Container();
}
}
class Login extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
floatingActionButton: FloatingActionButton(onPressed: () {
Navigator.of(context).push(MaterialPageRoute(builder: (ctx) {
return Home('flutter');
}));
}),
);
}
}
答案 1 :(得分:1)
有很多方法可以做到,我可以举几个例子。
您导航到新的小部件(屏幕),并将所需的数据传递给该小部件构造函数。
您可以使用Provider提供该数据并在其上包装新屏幕,然后导航到新屏幕。
如果这是应在整个应用程序中访问的一些数据,则可以将整个BLoC提供给整个应用程序,并在此新屏幕上获取BLoC的引用,然后直接从BLoC中获取数据。