Search code examples
flutterdartriverpodriverpod-generatorriverpod-annotation

How can I create a "non-autodispose" provider with riverpod_annotation?


Observations

if I create a provider using riverpod_annotation as follow

import 'package:riverpod_annotation/riverpod_annotation.dart';

part 'foo.g.dart';

@riverpod
String foo(FooRef ref) => 'foo';

said provider will needlessly be a AutoDisposeProvider<String> rather than just a Provider

final fooProvider = Provider((ref) => 'foo');

Question

How can I generate a regular provider with riverpod_annotation?

Additional informations

dependencies:
  flutter_riverpod: ^2.3.0
  riverpod_annotation: ^2.0.0

dev_dependencies:
  build_runner: ^2.3.3
  riverpod_generator: ^2.0.0
Flutter (Channel stable, 3.7.6, on macOS 13.2.1 22D68 darwin-arm64, locale en-EE)

Solution

  • You can add this:

    @Riverpod(keepAlive: true)
    String foo(FooRef ref) => 'foo';