Flutter:带有可选参数的 Equatable props getter

Jac*_*nig 10 dart equatable flutter dart-null-safety

我有一个扩展 Equatable 并包含可选参数的对象。如果我尝试将该参数添加到 props getter 中,则会收到错误The element type 'String?' can't be assigned to the list type 'Object'。但是,不添加它意味着该参数中具有不同值或没有值的对象内的相等性。

class Company extends Equatable {
  final String name;
  final String? logo;
....

@override
List<Object> get props {
  return [
    name,
    logo, //error here
....
Run Code Online (Sandbox Code Playgroud)

合适的解决方案是什么?

jam*_*lin 32

基本Equatable.propsgetter被声明返回 a List<Object?>,而不是List<Object>。修复您的覆盖以匹配将允许您存储null.