gpt4 book ai didi

flutter - 通过类型作为构造函数,并将其用作提供程序包的泛型

转载 作者:行者123 更新时间:2023-12-03 03:38:50 26 4
gpt4 key购买 nike

我有一个 child 小部件:


class MyWidget extends StatelessWidget {
final provider;

MyWidget({Key key, @required this.provider});

Widget build(BuildContext context) {
final data = Provider.of<provider>(context);
}

}

我从父窗口小部件多次使用:
class Parent extends StatelessWidget {

...
children: <Widget>[
ChangeNotifierProvider<Myproviderone>(
builder: (context) => Myproviderone(),
child: MyWidget(MyProviderone),
),
ChangeNotifierProvider<Myprovidertwo>(
builder: (context) => Myprovidertwo(),
child: MyWidget(MyProvidertwo),
),
],
...

}

我正在使用提供程序包。基本上,我想传递Myproviderone / Myprovidertwo类型用作 Provider.of<>内部的通用类型。如何实现?

最佳答案

使您的MyWidget为通用类:

class MyWidget<T> extends StatelessWidget {    
MyWidget({Key key});

Widget build(BuildContext context) {
final data = Provider.of<T>(context);
}
}

然后像这样从外部构建它:
class Parent extends StatelessWidget {
children: <Widget>[
ChangeNotifierProvider<Myproviderone>(
builder: (context) => Myproviderone(),
child: MyWidget<MyProviderone>(),
),
],
}

关于flutter - 通过类型作为构造函数,并将其用作提供程序包的泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58767700/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com