Jun*_*riq 3 flutter flutter-provider riverpod flutter-riverpod
我刚开始使用 RiverPod。之前我使用 Provider 进行状态管理。
如果是提供程序,我可以使用小部件树之外的提供程序来使用语法获取值
Provider.of<MyModel>(context,listen:true).someFunction();
Run Code Online (Sandbox Code Playgroud)
我如何在 RiverPod 中做同样的事情?现在我正在使用 Consumer Builder 和 Consumer Widget。我想知道是否有一种方法可以在不使用 Consumer 的情况下调用 Riverpod 提供商。
小智 5
您无需使用 即可轻松呼叫riverpord提供商Consumer。请查看我的下面的扩展,该扩展对于根据上下文调用提供者非常有帮助,在上下文中它将适用于读取功能,而无需任何消费者或消费者小部件。
extension Context on BuildContext {
// Custom call a provider for reading method only
// It will be helpful for us for calling the read function
// without Consumer,ConsumerWidget or ConsumerStatefulWidget
// Incase if you face any issue using this then please wrap your widget
// with consumer and then call your provider
T read<T>(ProviderBase<T> provider) {
return ProviderScope.containerOf(this, listen: false).read(provider);
}
}
Run Code Online (Sandbox Code Playgroud)
然后在 build 方法下,您必须调用 context.read(yourProviderName)
| 归档时间: |
|
| 查看次数: |
3286 次 |
| 最近记录: |