假设我有3个ChangeNotifierProviders“Auth 1”,“Auth 2”,“Auth 3”。我希望它们都实现login()、signup()和isAuthenticated()。
这样我就可以随时更换一个供应商。
//Interface
class IAuth {
Future<void> signUp(String email, String password)=>throw UnimplementedError();
Future<void> login(String email, String password) => throw UnimplementedError();
Future<bool> isAuthenticted() => throw UnimplementedError();
void logout() => throw UnimplementedError();
}
我可以定义
class Auth1 extends ChangeNotifier implements IAuth {...}
class Auth2 extends ChangeNotifier implements IAuth {...}
class Auth3 extends ChangeNotifier implements IAuth {...}
但是,我如何提供供应商,以这样的方式,我可以取代他们没有任何问题的未来?
ChangeNotifierProvider.value(value:Auth1())
过了一段时间,我可能想用Auth 2替换Auth 1,我还想知道这是否是一个微不足道的问题
2条答案
按热度按时间qxsslcnc1#
在RiverPod中使用ProviderScope可能更容易。(RiverPod由Provider的作者编写,用于解决一系列新问题。
tpgth1q72#
我来晚了然而,我刚刚遇到了同样的问题,解决方案是创建一个扩展ChangeNotifier的抽象类,然后使用抽象类的实现创建Provider。