You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter 3.3.4中Equatable可空属性报错:Tour?无法分配给Object

解决Equatable props可空类型报错问题

报错原因是Tour?(可空类型)无法赋值给List<Object>(非空对象列表),以下是两种可行的解决方式:

方式一:将props的返回类型改为List<Object?>

直接修改子类和父类的props返回类型,支持可空对象:

part of 'tour_editor_bloc.dart';

abstract class TourEditorEvent extends Equatable {
  const TourEditorEvent();

  @override
  List<Object?> get props => []; // 改为Object?类型列表
}

class OpenTourEditor extends TourEditorEvent {
  final Tour? tour;

  OpenTourEditor({this.tour});
  
  @override
  List<Object?> get props => [tour]; // 匹配可空的tour属性
}

方式二:处理空值后传入非空对象

如果你能确保tour不会为null,或者想为null场景设置默认值,可以用null-aware操作符:

class OpenTourEditor extends TourEditorEvent {
  final Tour? tour;

  OpenTourEditor({this.tour});
  
  @override
  List<Object> get props => [tour ?? Tour()]; // 用默认Tour实例替代null
}

注意:方式二需要你能提供合理的默认Tour实例,否则可能引发其他逻辑问题,优先推荐方式一。

内容的提问来源于stack exchange,提问作者user3735816

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 20:40:29