我正在尝试将动态类型参数传递给Provider.of<T>(context)
class CustomInputField extends StatelessWidget {
final Type stateClass;
CustomInputField({
Key key,
this.stateClass,
}) : super(key: key);
@override
Widget build(BuildContext context) {
var state = Provider.of<stateClass>(context);
return TextFormField(
key: state.key,
...
);
}
}
但这给了我以下错误:
名称'stateClass'不是类型,因此不能用作类型参数。尝试将名称更正为现有类型,或定义一个名为“ stateClass”的类型。
任何人都知道如何正确执行此操作吗?
可能这不是一个好习惯,或者甚至不可能。但是,我想为我的应用程序中的所有输入字段制作一个CustomInputField
小部件。我正在使用提供程序包中的ChangeNotifierProvider
类,并希望将不同的状态传递给此CustomInputField
小部件
您无法在Dart中将类型动态传递给泛型。唯一的方法是使用switch / if-else块并以通用类型返回不同类型的对象。