dart - Flutter getter 没有为类指定,当它被指定时

我来了

[dart] The getter 'currentPickup' isn't defined for the class PickupEvent[undefined_getter]

event.currentPickup 出错:

import 'dart:async';

import 'package:bloc/bloc.dart';

import 'pickup.dart';
import '../../../models/models.dart';

class PickupBloc extends Bloc<PickupEvent, PickupState> {

  @override
  Stream<PickupState> mapEventToState(PickupState state, PickupEvent event) async* {
    if (state.isNotRunning) {
      stopwatch.start();
      timer = new Timer.periodic(new Duration(milliseconds: 200), updateTime);
      yield PickupState.running();
    }

    if (state.isRunning) {
      stopwatch.stop();
      timer.cancel();

      _pushPickup(event.currentPickup);

      yield PickupState.done();
    }
  }

当在 PickupEvent 类中指定 getter 并在pickup.dart 中正确导入时。

import '../../../models/models.dart';

abstract class PickupEvent {}

class ButtonPressed extends PickupEvent {
  final PickupModel currentPickup;

  ButtonPressed({
    @required this.currentPickup
  });
}

知道是什么原因造成的吗?

最佳答案

错误信息是正确的。 ButtonPressed 有这样的 getter,但 PickupEvent 没有。

您可以向基类添加抽象 getter

abstract class PickupEvent {
  PickupModel get currentPickup;
}

或投喜欢

_pushPickup((event as ButtonPressed).currentPickup);

如果您确定它将是 ButtonPressed

你也可以这样做

if(event is ButtonPressed) {
  _pushPickup(event.currentPickup);
}

https://stackoverflow.com/questions/53340077/

相关文章:

dart - 在 Flutter 中获取设备的宽度和高度

ios - Flutter 在我的 Flutter 应用程序的根目录上构建 IOS 不起作用

flutter - Flutter 中的可滚动底部工作表

android - 在 Flutter 中剪切文本效果

android-studio - Android : Could not find aapt2-pr

dart - 检查无状态小部件是否在 flutter 中处理

flutter - 标题在flexibleSpaceBar上没有正确显示

flutter - 检测用户是否离开 Flutter 中的当前页面?

ios - 将 watch 应用程序添加到 Flutter iOS 应用程序

dart - 具有水平列表和网格的 Flutter 可滚动主体作为子项