gpt4 book ai didi

flutter_bloc/provider RepositoryProvider 与 Provider

转载 作者:行者123 更新时间:2023-12-02 00:07:48 28 4
gpt4 key购买 nike

我是 Flutter 的新手,目前正在研究 DI。
我正在使用 flutter_blocprovider 包。

flutter_bloc 附带一个 RepositoryProvider,我现在问自己的问题是 Providerprovider 有什么区别>?

RepositoryProvider 存储库有什么特别之处,还是只是一种命名策略?

最佳答案

  • RepositoryProvider不处理更新。您不能在运行时“更改”存储库。
  • Provider确实处理更新(使用 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 version 4.1.0 , 你可以使用 context.read<MyObject>()而不是 Provider.of<MyObject>(context, listen: false) – 这减少了冗长的差异

关于flutter_bloc/provider RepositoryProvider 与 Provider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60091713/

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