flutter 如何使用Riverpod生成器生成提供程序?

6vl6ewon  于 2023-02-05  发布在  Flutter
关注(0)|答案(1)|浏览(172)

使用riverpod_generator,我可以使用:

@riverpod
int foo(FooRef ref) => 0;

它相当于:

final fooProvider = Provider((ref) => 0);

但是,如何对其他提供程序(如FutureProviderStateProvider等)执行相同的操作?

0yycz8jy

0yycz8jy1#

通过代码生成,你可以使用简化你的提供者声明。主要有五个提供者,你可以看到如何为每个提供者生成等价的代码。
1.####Provider
相当于

final fooProvider = Provider((ref) => 0);

@riverpod
int foo(FooRef ref) => 0;

1.####FutureProvider
相当于

final fooProvider = FutureProvider((ref) async {
  return 0;
});

@riverpod
Future<int> foo(FooRef ref) async {
  return 0;
}

1.####StateProvider
相当于

final fooProvider = StateProvider((ref) => 0);

@riverpod
class Foo extends _$Foo {
  @override
  int build() => 0;
}

相关问题