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')));
});
我有这个错误信息
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')));
});