ref.listen in Riverpod flutter

Viewed 3340

I have this error message

The argument type 'StateProvider' can't be assigned to the parameter type 'ProviderListenable<StateController>'.

And, this is my provider code

final loginExceptionProvider = StateProvider<LoginException>((ref) {
  return const LoginException(message: 'ok');
});

and this my ref.listen code

 ref.listen<StateController<LoginException>>(loginExceptionProvider, ( prev, next) {
      ScaffoldMessenger.of(context)
          .showSnackBar(const SnackBar(content: Text('yoyo')));
    });
2 Answers

The provider doesn't expose a StateController<T> but simply T

The correct syntax would be:

ref.listen<LoginException>(loginExceptionProvider, (prev, next) {
  ScaffoldMessenger.of(context)
    .showSnackBar(const SnackBar(content: Text('yoyo')));
});

I find the answer in this link Riverpod Documentation

I just add the notifier on provider

 ref.listen<StateController<LoginException>>(loginExceptionProvider.notifier, ( prev, next) {
      ScaffoldMessenger.of(context)
          .showSnackBar(const SnackBar(content: Text('yoyo')));
    });
Related