【发布时间】:2022-01-17 11:19:29
【问题描述】:
假设我已经编写了如下代码。 我有一个名为 SampleProvider 的提供程序,我在我的主小部件中使用它。
class SampleProvider extends ChangeNotifier {}
class MainWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
SampleProvider provider = Provider.of<SampleProvider>(context);
}
}
然后,我想制作一个新小部件并在新小部件中使用此提供程序。 会有两个选择。 首先,我只是在新的小部件中实例化另一个提供程序,如下所示。
class NewWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
SampleProvider provider = Provider.of<SampleProvider>(context);
}
}
或者,我可以将它作为构造函数参数从主小部件发送到新小部件。 像这样:
class NewWidget extends StatelessWidget {
final SampleProvider provider;
NewWidget(this.provider);
@override
Widget build(BuildContext context) {
}
}
我猜第一个选项更好,因为颤振根据其构建上下文绘制一个小部件,但我不确定。 我用谷歌搜索了很长时间,但没有成功。 谁能告诉我我是对还是错?还是他们没有区别?
【问题讨论】:
标签: flutter dart flutter-dependencies flutter-provider