Flutter Bloc用于导航流程

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (179)

我开始使用BLoC模式,但我有一个问题:

1)您是否应该使用BloC模式来确定路由是否应该更改?示例:身份验证对象更改为,unauthenticated因此侦听器应处理路由更改。

2)BLoC模式是否应仅用于UI状态并处理UI更改中的路由更改?示例:用户单击login并导航到home屏幕。

我问这个问题是因为我遇到了一个我没有中央导航管理解决方案的问题。

这段代码现在在我的BLoC中:

loggedIn.listen((AuthResponse user) {
      currentUserSubject.add(user);
      Navigator.pushReplacement(
        _context,
        PageRouteBuilder(
          pageBuilder: (context, animation1, animation2) {
            return HomePage();
          },
          transitionsBuilder: (context, animation, _, child) {
            return new SlideTransition(
              child: child,
              position: new Tween<Offset>(
                begin: const Offset(0.0, 1.0),
                end: Offset.zero,
              ).animate(animation),
            );
          },
          transitionDuration: Duration(milliseconds: 400),
        ),
      );
    }, onError: (error) {
      Scaffold.of(_context).showSnackBar(new SnackBar(
        content: new Text(error.message),
      ));
    });
提问于
用户回答回答于

我看到那里有2个是/否问题(与W / H问题相反),我的答案对他们两个都是肯定的。原因是使用BloC和导航,如果应用程序崩溃,您实际上可以恢复当前屏幕(自动保存状态和状态恢复必须到位,但这是另一个W / H问题),以及BLoC /事件的其他不错功能基于状态的管理(历史快照,时间机器,事件重放,关注点,可测试性等)

我问这个问题是因为我遇到了一个我没有中央导航管理解决方案的问题。

关于你的问题,有什么我可以帮忙的吗?

扫码关注云+社区

领取腾讯云代金券