Flutter getter 没有为类指定,当指定时

2024-05-26

我越来越

[dart] 没有为该类定义 getter 'currentPickup' 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有这样一个吸气剂,但是PickupEvent才不是。

您可以向基类添加抽象 getter

abstract class PickupEvent {
  PickupModel get currentPickup;
}

或像

_pushPickup((event as ButtonPressed).currentPickup);

如果你确定这将是ButtonPressed.

你也可以做

if(event is ButtonPressed) {
  _pushPickup(event.currentPickup);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter getter 没有为类指定,当指定时 的相关文章