我是新手,现在正在研究DI。
我正在使用flutter_bloc
和provider
软件包。
flutter_bloc
附带一RepositoryProvider
,问题IM问自己现在是什么之探源来Provider
从provider
?
RepositoryProvider
存储库有什么特别之处吗?还是只是命名策略?
Provider.value
)。这意味着,如果您在运行时更改对象,则将重建使用该对象的小部件。这种差异对生命周期的影响如下initState
:
使用Provider,您必须显式不监听对象更改:
void initState() {
super.initState();
// will fail if listen: false is not specified
Provider.of<MyObject>(context, listen: false);
}
使用RepositoryProvider,您不必关心:
void initState() {
super.initState();
RepositoryProvider.of<MyObject>(context);
}
因此,这只是详细程度上的差异。
实际上,从Provider版本4.1.0开始,您可以使用context.read<MyObject>()
代替Provider.of<MyObject>(context, listen: false)
–来减少冗长的差异
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句