将属性传递给 Equatable 的超级构造函数
Passing properties to the super constructor of Equatable
我是 Flutter 和 Dart 的新手,我在理解如何重写 class 扩展更新版本的 Equatable 时遇到了一些麻烦。
这适用于 Equatable 0.4.0:
abstract class Failure extends Equatable {
Failure([List properties = const<dynamic>[]]) : super(properties);
}
但是,更新到 Equatable 1.0.2 会在 super(properties)
:
处引发错误
Too many positional arguments: 0 expected, but 1 found.
Try removing the extra arguments.
我不明白如何使用 Equatable 1.0.2
将 properties
传递给超级构造函数
The official Equatable docs 描述如何将您的比较属性公开给超级 class。实际上,您根本不需要在构造函数中调用 super。相反,您将使用如下代码(不是我的代码,取自文档):
class Person extends Equatable {
final String name;
Person(this.name);
@override
List<Object> get props => [name];
}
这里的关键是覆盖道具getter。 equatable super class 寻找 props
getter 中的属性来发挥它的魔力。
equatable 所做的只是覆盖 classes 中的 ==
运算符。有一个excellent medium article that goes over some common operator overrides that you may find useful.
我参加派对可能有点晚了。但可以提出以下建议 - 您不需要将任何变量传递给 Equatable 超级构造函数。相反,您可以从 Failure class 中覆盖 Equatable 基 class 并将“props”分配给一个空数组。如果需要,任何继承 Failure 的 class 也可以“@override”道具。
import 'package:equatable/equatable.dart';
abstract class Failure extends Equatable {
@override
List<Object> get props => [];
}
起亚卡哈,
迈克·史密斯
我是 Flutter 和 Dart 的新手,我在理解如何重写 class 扩展更新版本的 Equatable 时遇到了一些麻烦。
这适用于 Equatable 0.4.0:
abstract class Failure extends Equatable {
Failure([List properties = const<dynamic>[]]) : super(properties);
}
但是,更新到 Equatable 1.0.2 会在 super(properties)
:
Too many positional arguments: 0 expected, but 1 found.
Try removing the extra arguments.
我不明白如何使用 Equatable 1.0.2
将properties
传递给超级构造函数
The official Equatable docs 描述如何将您的比较属性公开给超级 class。实际上,您根本不需要在构造函数中调用 super。相反,您将使用如下代码(不是我的代码,取自文档):
class Person extends Equatable {
final String name;
Person(this.name);
@override
List<Object> get props => [name];
}
这里的关键是覆盖道具getter。 equatable super class 寻找 props
getter 中的属性来发挥它的魔力。
equatable 所做的只是覆盖 classes 中的 ==
运算符。有一个excellent medium article that goes over some common operator overrides that you may find useful.
我参加派对可能有点晚了。但可以提出以下建议 - 您不需要将任何变量传递给 Equatable 超级构造函数。相反,您可以从 Failure class 中覆盖 Equatable 基 class 并将“props”分配给一个空数组。如果需要,任何继承 Failure 的 class 也可以“@override”道具。
import 'package:equatable/equatable.dart';
abstract class Failure extends Equatable {
@override
List<Object> get props => [];
}
起亚卡哈,
迈克·史密斯