如何将提供者类名作为参数传递?

how to pass provider classname as an argument?

我想将提供程序类名作为参数传递,但它一直给我错误名称 'providerClassName' 不是类型,因此不能用作类型参数。

我正在尝试这个

  Widget buildText<T>({@required T providerClassName}) {
    return Text(
        Provider.of<providerClassName>(context, listen: false).username);
  }

我正在调用这样的函数

 buildText(providerClassName: HomeScreenProvider);

你几乎答对了。 您拥有方法

的泛型类型 T
buildText<T extends HomeScreenProvider>

因此您可以像 Provider.of<T>(context, listen: false).username 一样使用它并调用它
buildText<HomeScreenProvider>();