如果流中有正确的值,则执行一个方法|Flutter|RxDart



假设我有一个流(a(,它可以得到:SuccessModel或FailureModel。

  • 我使用StreamBuilder订阅了这个流A,如果这个流包含SuccessModel,我只想路由到下一个页面,如果它包含FailureModel,我想留在同一个页面
  • 现在,由于这是一个StreamBuilder,它总是希望我返回一个Widget,但在这种情况下,我可能只想使用Navigator来路由到下一个页面

考虑到上述情况,我应该如何进行?

我应该只返回一个空容器,可能是Future.delay到下一页(成功后(,还是有一种方法可以在流a上使用,这样我就可以在bloc类中定义一个函数或监听器,它根据流获得的值执行正确的函数集(路由(。。

任何帮助都将不胜感激!

因此您有一个stream,并且您希望UI重定向到正确的Route,具体取决于stream的值。

如果您使用的是Router 1.0,只需在小部件中使用listenstream,就可以决定是否使用push路由。

或者,如果您使用Router 2.0,也许使用GoRouter,您可以直接在ChangeNotifier类中侦听该流,以便根据stream的值重定向用户。

相关内容

最新更新