ref.listen在Riverpod扑

ref.listen in Riverpod flutter

我有这个错误信息

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

而且,这是我的提供商代码

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

这是我的 ref.listen 代码

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

我在这个link中找到了答案 Riverpod Documentation

我只是在提供商上添加了通知程序

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

提供者不公开 StateController<T> 而只是 T

正确的语法是:

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