Flutter动态类型参数

问题描述 投票:0回答:1

我正在尝试将动态类型参数传递给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小部件

flutter generic-type-argument
1个回答
1
投票

您无法在Dart中将类型动态传递给泛型。唯一的方法是使用switch / if-else块并以通用类型返回不同类型的对象。

© www.soinside.com 2019 - 2024. All rights reserved.