0

假设我有 3 个 ChangeNotifierProviders “Auth1”、“Auth2”、“Auth3”。我希望它们都实现 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();
}

我可以定义

类 Auth1 扩展 ChangeNotifier 实现 IAuth { ... }

类 Auth2 扩展 ChangeNotifier 实现 IAuth { ... }

类 Auth3 扩展 ChangeNotifier 实现 IAuth { ... }

但是我怎样才能提供这些提供者,以便将来可以毫无问题地替换它们呢?

ChangeNotifierProvider.value(值:Auth1())

一段时间后,我可能想用 Auth2 替换 Auth1 并且我想知道这是否是一个微不足道的问题

4

1 回答 1

0

在 RiverPod 中使用 ProviderScope 可能会更容易。(RiverPod 由 Provider 的作者编写,旨在解决一系列新问题。)

于 2021-05-21T16:27:48.430 回答