如何在 Flutter 中使用带有抽象 class 的 ChangeNotifier?
How to use ChangeNotifier with a abstract class in Flutter?
在我的 dart 应用程序中,我想使用 ChangeNotifier 进行身份验证 class。
我有一个抽象 class,另一个 class 实现了这些方法。
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 未与基础一起使用 class。
我想做的是将 ChangeNotifier 与摘要一起使用 class。但不确定如何覆盖 Auth class;
中的方法
@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
}
有人可以提供一些帮助吗?
提供商文档中有一个针对这种情况的示例: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(),
),
在我的 dart 应用程序中,我想使用 ChangeNotifier 进行身份验证 class。
我有一个抽象 class,另一个 class 实现了这些方法。
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 未与基础一起使用 class。
我想做的是将 ChangeNotifier 与摘要一起使用 class。但不确定如何覆盖 Auth class;
中的方法@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
}
有人可以提供一些帮助吗?
提供商文档中有一个针对这种情况的示例: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(),
),