Flutter 动态类型参数

Flutter dynamic type argument

我正在尝试将动态类型参数传递给 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,
      ...
    );
  }
}

但这给了我以下错误:

The name 'stateClass' isn't a type so it can't be used as a type argument. Try correcting the name to an existing type, or defining a type named 'stateClass'.

有人知道如何正确执行此操作吗?

这可能不是一个好的做法,或者甚至是不可能的。但问题是,我想为我的应用程序中的所有输入字段制作一个 CustomInputField 小部件。我正在使用 Provider 包中的 ChangeNotifierProvider class 并希望将不同的状态传递给此 CustomInputField 小部件

您不能在 Dart 中将类型动态传递给泛型。唯一的方法是在泛型中使用不同类型的 switch/if-else 块和 return 对象。