0

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

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

1 回答 1

0

ref.watch(fooProvider.future);

是未来<String?>

ref.watch(fooProvider).value;

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

于 2021-11-16T09:40:11.733 回答