标签: riverpod-generator

如何使用 Riverpod 生成器生成提供商?

有了riverpod_generator,我可以使用:

@riverpod
int foo(FooRef ref) => 0;
Run Code Online (Sandbox Code Playgroud)

这相当于:

final fooProvider = Provider((ref) => 0);
Run Code Online (Sandbox Code Playgroud)

FutureProvider但我怎样才能为其他提供商(如、等)做同样的事情StateProvider呢?

flutter riverpod riverpod-generator

5
推荐指数
1
解决办法
3361
查看次数

使用 Riverpod_generator 时如何防止提供程序自动处置

我正在使用riverpod_generator,但我没有看到任何让提供者保持活力的方法。生成器代码实际上相当于

final fooProvider = FutureProvider.autoDispose((ref) async => 0);
Run Code Online (Sandbox Code Playgroud)

但在上面的代码中我可以删除autoDispose但如何使用@riverpod生成器做到这一点?

@riverpod
Future<int> foo(FooRef ref) async {
  return 0; // Where to define `autoDispose`? 
}
Run Code Online (Sandbox Code Playgroud)

flutter riverpod riverpod-generator

5
推荐指数
1
解决办法
3119
查看次数

如何在测试中正确覆盖 Riverpod 生成的提供程序?

我有存储库,并为该存储库生成提供程序,如下所示:

@riverpod
class Repository extends _$Repository {
  @override
  String? build() {
    return null;
  }

  Future<void> fetchData() async {
    state = "Hello World!";
  }
}
Run Code Online (Sandbox Code Playgroud)

我想测试我的应用程序。在测试中我想模拟这个存储库的提供者。但我有来自 Riverpod_lint 的消息:Providers which are overridden in a non-root ProviderContainer/ProviderScope should specify dependencies.

我的测试如下所示:

@riverpod
class MockedRepository extends _$MockedRepository implements Repository {
  @override
  String? build() {
    return null;
  }

  Future<void> fetchData() async {
    state = "Hello Mocked World!";
  }
}

void main() {
  testWidgets('override repositoryProvider', (tester) async {
    await tester.pumpWidget(
      ProviderScope(
        overrides: [
          repositoryProvider.overrideWith(() …
Run Code Online (Sandbox Code Playgroud)

flutter riverpod riverpod-generator

5
推荐指数
0
解决办法
427
查看次数

使用 Riverpod 提供 GoRouter 实例的正确方法是什么?

我正在尝试提供一个GoRouterwith的实例riverpod。但是,这会导致显示“Riverpod_generator 包不支持 ChangeNotifier 值”警告:

在此输入图像描述

我的问题是,实现这一目标的正确方法是什么?

flutter riverpod riverpod-generator riverpod-lint

4
推荐指数
1
解决办法
1858
查看次数