在我的dart应用程序中,我想对我的身份验证类使用ChangeNotifier。
我有一个抽象类,另一个类实现了这些方法。
abstract class AuthBase {
Future<void> signIn(String email, String password);
Future<void> signUp(String email);
Future<void> signOut();
}
class Auth with ChangeNotifier implements AuthBase {
...
}
如您所见,ChangeNotifier未与基类一起使用。
我想做的是将ChangeNotifier与抽象类一起使用。但不确定如何重写Auth类中的方法;
@override
void addListener(listener) {
// TODO: implement addListener
}
@override
void dispose() {
// TODO: implement dispose
}
@override
// TODO: implement hasListeners
bool get hasListeners => throw UnimplementedError();
@override
void notifyListeners() {
// TODO: implement notifyListeners
}
@override
void removeListener(listener) {
// TODO: implement removeListener
}
有人可以提供一些帮助吗?
答案 0 :(得分:1)
提供者文档有一个例子:https://github.com/rrousselGit/provider#can-i-consume-an-interface-and-provide-an-implementation
abstract class ProviderInterface with ChangeNotifier {
...
}
class ProviderImplementation with ChangeNotifier implements ProviderInterface {
...
}
class Foo extends StatelessWidget {
@override
build(context) {
final provider = Provider.of<ProviderInterface>(context);
return ...
}
}
ChangeNotifierProvider<ProviderInterface>(
create: (_) => ProviderImplementation(),
child: Foo(),
),