flutter - [Flutter/Riverpod].future 和 .value 的区别
问题描述
我想知道以下两者之间的区别;
ref.watch(fooProvider).value
返回String?
ref.watch(fooProvider.future)
返回Future<String?>
不同的只是他们返回什么?
我想知道什么时候使用。请举个例子。
以下是示例代码;
final fooProvider = FutureProvider<String?>((ref) {
return Future.delayed(Duration(seconds: 2), () => "foo");
});
final xxx = FutureProvider<String?>((ref) async {
final String? ttt = ref.watch(fooProvider).value;
final String? sss = await ref.watch(fooProvider.future);
return '$ttt / $sss';
});
解决方案
ref.watch(fooProvider.future);
是未来<String?>
ref.watch(fooProvider).value;
是字符串吗?所以不用等待。
推荐阅读
- python - curve_fit 中的多个变量,sigma 的形状不正确?
- python - 如何从 numpy 数组中获取列而不是列表?
- html - 变换比例动画从错误的位置开始
- javascript - 将数组缓冲区转换为字符串 - 超出最大调用堆栈大小 - IE
- c# - 为什么调用此方法时省略了 Enumerable?命名空间混乱
- flutter - 如何解决“无法将参数类型'String'分配给参数类型'int'” - Flutter
- excel - 有没有办法在同一个 For Each 循环中逐步遍历多个单元格范围?
- apache - 如何使用 Apache UIMA Ruta 从两个子字符串中提取 ID 和日期?
- java - 有没有办法在 Java 中使用 readUTF() 检测二进制文件的结尾?
- javascript - 无法从 useEffect 更新 React 状态挂钩