首页 > 解决方案 > 在按下事件时打开或在新的 Bloc 表单上导航

问题描述

我有 2 个 Bloc注册登录,登录页面上的注册单击按钮。我想从登录的注册按钮点击重定向到注册页面,这里是截图。收到这样的错误

child: new RaisedButton(
          color: Colors.red[800],
          textColor: Colors.white,
          child: new Text(
            'REGISTER',
            style: TextStyle(fontSize: 18, fontWeight: FontWeight.w400),
          ),
          onPressed: () => BlocListener(
              //bloc: RegistrationPageBloc,
              listener:
                  (BuildContext context, RegistrationFormState state) {
                Navigator.of(context).push(
                    MaterialPageRoute(builder: (BuildContext context) {
                  return RegistrationForm();
                }));
              }),
          shape: RoundedRectangleBorder(
            borderRadius: BorderRadius.circular(20.0),
          ),
        ),

在此处输入图像描述

标签: fluttereventslistenerbloc

解决方案


您的父小部件不会将您的愿望传递给带有registrationBloc的孩子BlocListener,这会导致没有提供的上下文RegistrationBloc

您需要用 BlocProvider 包装您的父母。例如:

BlocProvider(
 create: (_) => RegistrationBloc(),
 child: RaisedButton(
    child: BlocListener(),
  )
),

推荐阅读