我有一个通用类型的数据类,其中包含该类型的函数,定义如下:
class SettingsData<T> {
// constructor
final String label;
final Widget Function(T) render;
final Future<T> Function(BuildContext, T) tapAction;
}
然后我用它来生成一个小部件,如下所示:
Widget _settingsRow<T>(_SettingsData<T> data) {
final baseWidget = Row(
children: [
Text(data.label),
const Spacer(),
data.render(),
],
);
return data.tapAction == null
? baseWidget
: GestureDetector(
behavior: HitTestBehavior.opaque,
child: baseWidget,
onTap: () async {
var result = await data.tapAction(context, data.value);
_setValue(data, result, shouldSave: true);
},
);
}
但是,每当我运行代码时,都会出现错误
type '(BuildContext, DateTime) => Future<DateTime>' is not a subtype of type '(BuildContext, Object) => Future<Object>'
支票上的data.tapAction == null
。我该如何解决这个问题?