[Flutter/Riverpod]未来和价值之间的差异



我想知道下面两个之间的区别;

  • 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.foreture(;

是未来<字符串>

ref.watch(fooProvider(.value;

是字符串吗?所以没有必要等待。

最新更新