用户登录

我们现在要用一个 Provider 提供这个 AppService,这个 AppService 里面有个依赖,就是这个 authModel,所以就不能用普通的 Provider 提供它,可以用一个 ProxyProvider ,它可以解决 Provider 之间的依赖问题。

app_provider.dart

在项目下面新建一个文件,放在 lib/app 里面,名字是 app_provider.dart ,在文件里声明一个 appServiceProvider,它的值可以用一个 ChangeNotifierProxyProvider,这里要设置两个类型,第一个类型是依赖的东西的类型,这里就是 AuthModel,第二个类型是要提供的东西的类型,这里就是 AppService。这里是要提供的是一个 AppService,这个 AppService 的依赖是这个 AuthModel。

在里面添加一个 create ,它的值是一个方法,接收一个 context 参数,返回的值可以新建一个 AppService,设置一下 authModel 参数的值,对应值是一个 AuthModel 实例。可以用一下 context.read() 方法,类型是 AuthModel。

再添加一个 update 方法,当 AuthModel 发生变化的时候会执行这个方法,三个参数,第一个参数是 context,第二个参数是 authModel,第三个参数是 appService。返回的值可以新建一个 AppService,把 authModel 参数的值设置成 authModel。

下面再声明一个 appProviders ,值是一个列表,里面添加一个 appServiceProvider。

app.dart

打开 app.dart,在这个 providers 里面,用 spread 操作符,展开 appProviders 里的东西,再把展开的东西放到这里。注意这里要把它放在 postProviders 的上面。

用 ChangeNotifierProxyProvider 解决依赖《 Flutter 2:状态管理(2) 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点