首页 > 解决方案 > [Flutter/Riverpod].future 和 .value 的区别

问题描述

我想知道以下两者之间的区别;

不同的只是他们返回什么?

我想知道什么时候使用。请举个例子。

以下是示例代码;

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';
});

标签: flutterriverpod

解决方案


ref.watch(fooProvider.future);

是未来<String?>

ref.watch(fooProvider).value;

是字符串吗?所以不用等待。


推荐阅读