Invalid constant value.问题
在你的 _RecordDay 类中,你定义了一个 const 构造函数:
const _RecordDay(this.orientation);但是在 build 方法中,你使用了这个构造函数:
RecordDay(orientation == Orientation.portrait),这里的问题是,你在构造函数中使用了 const,但是在实际调用构造函数时,传递的参数使用了表达式 orientation == Orientation.portrait,这是一个非常量表达式,导致整个实例不再是 const。
要解决这个问题,你可以考虑在构造函数中移除 const:
_RecordDay(this.orientation);然后在使用时,不再需要 const:
RecordDay(orientation == Orientation.portrait),这样就能避免 "Invalid constant value." 的错误。
如果你遇到了"A value of type 'Null' can't be assigned to a parameter of type 'bool' in a const constructor."的错误,说明在使用 const 构造函数时,传递的参数可能为 null。
在 Dart 中,const 构造函数要求传递的参数不能为 null。如果你想在构造函数中接收 null 值,应该去掉构造函数前的 const 关键字。
以下是一个不使用 const 的例子:
class _RecordDay extends ConsumerWidget {
final bool? orientation;
// 构造函数
const _RecordDay({required this.orientation});
// ... 其他部分
}这里 bool? 表示 orientation 可以为 null。如果你不确定传递的参数是否为 null,可以使用这种方式来处理。










