【发布时间】:2021-03-08 19:20:18
【问题描述】:
我在使用 freezed 转换这个类时遇到了一个小问题,因为不可能有一个不是常量的默认值,所以不能将行 DateTime nocache= DateTime.now() 转换为 @Default(DateTime.now()) DateTime nocache
这里有完整的代码
import 'package:equatable/equatable.dart';
abstract class DynamicLinkState extends Equatable {
const DynamicLinkState();
@override
List<Object> get props => [];
}
class DynamicLinkInitial extends DynamicLinkState {
@override
String toString() => 'DynamicLinkInitial';
}
class DynamicLinkToNavigate extends DynamicLinkState {
final String path;
final DateTime nocache = DateTime.now();
DynamicLinkToNavigate({this.path});
@override
List<Object> get props => [path, nocache];
@override
String toString() => 'DynamicLinkToNavigate';
}
我最终该怎么做?
附加上下文
我在这里使用了nocache 属性,因为bloc 被优化为不会多次发送相同的事件,但在这种情况下这是一个有效的用例,因为我可能希望用户收到不止一次相同的动态关联。所以我们找到的解决方案就是通过传递一个不断变化的nocache 参数来使这种优化失效。
因此,此问题的有效解决方案也可能是简单地删除此解决方法以支持更可靠的解决方案。
【问题讨论】:
-
您能否在问题中添加您的冻结代码
标签: flutter flutter-bloc freezed