Flutter Bloc Pattern - 如何在流事件后导航到另一个屏幕?

问题描述 投票:10回答:2

我的问题是关于与集团模式一起使用的导航。

在我的LoginScreen小部件中,我有一个按钮,可以将事件添加到集团的EventSink中。 bloc调用API并验证用户身份。问题是在LoginScreen Widget中我必须监听流,以及在返回成功状态后如何导航到另一个屏幕。

希望我清楚自己。谢谢!

dart flutter dart-async reactive-streams
2个回答
2
投票

使用BlockListener。

 BlocListener(
  bloc: _yourBloc,
  listener: (BuildContext context, YourState state) {
    if(state is NavigateToSecondScreen){
      Navigator.of(context).push(MaterialPageRoute(builder: (BuildContext context) {return SecondScreen();}));
    }
  },
  child: childWidget
)

0
投票

这样的事情:

 if (state is PhoneLoginCodeSent) {
          // dispatch here to reset PhoneLoginFormState
          SchedulerBinding.instance.addPostFrameCallback((_) {
            Navigator.of(context).push(
              MaterialPageRoute(
                builder: (context) {
                  return VerifyCodeForm(phoneLoginBloc: _phoneLoginBloc);
                },
              ),
            );
            return;
          });
        }
© www.soinside.com 2019 - 2024. All rights reserved.