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
相关产品推荐
相关产品推荐

