如何使用 bloc in flutter 将数据传递到另一个屏幕

how to pass data to another screen using bloc in flutter

你好我是 flutter 和 bloc 的新手,我想我有 2 个屏幕(登录和主屏幕)。在登录屏幕中,我正在使用 post 数据的 bloc,我想在我的主屏幕中调用该数据。有人可以给我举个例子吗?

如果你只是想从登录页面传递一个值到主页,你可以这样做:

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. 您导航到新的 Widget(屏幕)并将您想要的数据传递给该 Widget 构造函数。

  2. 您可以使用 Provider 提供该数据并将新屏幕包裹在其上,然后导航到新屏幕。

  3. 如果这是应该跨应用程序访问的一些数据,您可以将整个 BLoC 提供给整个应用程序并在这个新屏幕上获取 BLoC 的引用,然后直接从BLoC.