【问题标题】:Drawer navigiation load content with BLoC抽屉导航使用 BLoC 加载内容
【发布时间】:2020-05-11 22:25:25
【问题描述】:

我正在尝试使用 BLoC 从我的抽屉中加载内容或页面。我正在使用flutter_bloc: ^4.0.0

菜单块

class MenuBloc extends Bloc<MenuEvent, MenuState> {
  @override
  MenuState get initialState => Dashboard();

  @override
  Stream<MenuState> mapEventToState(
    MenuEvent event,
  ) async* {
    if (event is DashboardClicked) {
      yield Dashboard();
    }
    if (event is ProfileClicked) {
      yield Profile();
    }
  }
}

菜单事件

abstract class MenuEvent{
  @override
  List<Object> get props => [];
}

class LoadDefaultMenu extends MenuEvent {}

class DashboardClicked extends MenuEvent {}

class ProfileClicked extends MenuEvent {}

菜单状态

abstract class MenuState extends Equatable {
  const MenuState();

  @override
  List<Object> get props => [];
}

class Dashboard extends MenuState {}
class Profile extends MenuState {}

我有这个要store 活动。

class NavModel {
  String title;
  IconData icon;
  MenuEvent menuEvent;

  NavModel({this.title, this.icon, this.menuEvent});
}

  List<NavModel> navigationItems = [
    NavModel(
      title: 'Dashboard',
      icon: Icons.insert_chart,
      menuEvent: BlocProvider.of<MenuBloc>(context).add(
        DashboardClicked(),
      ),
    ),
    NavModel(
      title: 'Profile',
      icon: Icons.person,
      menuEvent: BlocProvider.of<MenuBloc>(context).add(
        ProfileClicked(),
      ),
    ),
  ];

但问题出在这部分List&lt;NavModel&gt; navigationItems。我收到此错误

错误:此表达式的类型为“void”,无法使用。菜单事件: BlocProvider.of(context).add( DashboardClicked(), ),

当我改成这个

menuEvent: MenuEvent.DashboardClicked

我收到这个错误

错误:找不到 Getter:“DashboardClicked”。 menuEvent: MenuEvent.DashboardClicked

我该如何解决?我错过了什么吗?

【问题讨论】:

    标签: flutter flutter-bloc


    【解决方案1】:

    DashboardClicked 是子类,

    更改代码:

    menuEvent: MenuEvent.DashboardClicked
    

    到:

    menuEvent: DashboardClicked()
    

    NavModel类中

    【讨论】:

    • 我收到此错误The argument type 'Type' can't be assigned to the parameter type 'MenuEvent'.
    • 试试这个:menuEvent: DashboardClicked()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-06
    • 1970-01-01
    相关资源
    最近更新 更多