我有FutureProvider,但我需要在context以外的地方收听,所以我用ProviderContainer.

final providerContainer = ProviderContainer();

final futureProvider = FutureProvider<String?>((ref) async {
  return await foo();
});

我如何获得它的值,并用providerContainer更新它?

推荐答案

您可以执行以下操作:

  final providerContainer = ProviderContainer();

  final futureProvider = FutureProvider<String?>((ref) async {
    return await foo();
  });

  final AsyncValue<String?> result = providerContainer.read(futureProvider);

  final String? data = result.value;

或者使用AsyncValue中的任何其他方法/getter.

Flutter相关问答推荐

Riverpod生成器和生成util类

使用ThemeProvider不在亮模式和暗模式之间切换

顶部对齐ListTile的[前导、标题、尾随]小部件

了解多Provider 和流

Flutter 使用扩展的 TextField 定位小部件

Flutter:使用 GlobalKey 访问 BlocProvider

模块是使用不兼容的 kotlin 版本编译的.其元数据的二进制版本是1.8.0,预期版本是1.6

Firestore 使用 Flutter 以奇怪的格式保存数据

启动画面中的淡入淡出图像

如何解决需要一个标识符,但得到的是:.try 在:之前插入一个标识符.dart 错误

Agora VideoCall 不显示远程视频网格

Android Electric eel Mac M1:运行 flutter doctor -v 时无法找到Bundle 的 java 版本

Flutter sliver 持久化

我怎样才能一次只选中一个复选框?

如何验证非表单字段?

避免长单词中断

从物理设备 Flutter 中移除 USB 后启动画面不可见?

try 为两个下拉值添加共享首选项,但在 Flutter 上显示错误断言失败:?

我已经删除了我的 .android 密钥库,但我没有使用它,如何生成一个新的?

参数类型Future>不能分配给参数类型Future>?