小编hac*_*024的帖子

Flutter 中的简洁架构和用户登录 - 如何存储用户信息?

我一直在尝试使用Reso Coder 的 Flutter对 Uncle Bob 的 Clean Architecture 的改编。

我的应用程序连接到 API,大多数请求(登录除外)都需要身份验证令牌。此外,登录后,会收到用户个人资料信息(如姓名和个人资料图片)。

我需要一种方法来在登录时保存这些数据,并在未来的 API 请求和我的应用程序的 UI 中使用它。

由于我是鲍勃叔叔的干净架构的新手,我不太确定这些数据属于哪里。以下是我提出的想法,所有这些都涉及将数据存储在User对象中:

  1. 将其存储User在存储库层的authentication功能目录中。其他存储库级别的方法可以将其传递给适当的数据源方法。

    这似乎是最有道理的;调用其他 API 调用的其他存储库级方法可以User轻松使用存储的内容,将其传递给数据源层中的方法。

    如果这是要走的路,我不太确定其他功能(使用 API)将如何访问User- 让一个存储库依赖于另一个存储库并将authentication存储库传递到新功能存储库可以吗?

  2. 将其存储User在存储库层的authentication功能目录中。其他(非登录)用例可以依赖于该存储库以及与其自身功能相关的存储库,并将其传递User给其存储库方法。

    这也打破了垂直功能障碍,但它可能比想法 1 更清晰。

对于这两个想法,我的存储库如下所示:

abstract class AuthenticationRepository {
  /// The current user.
  User get currentUser;

  /// True if logged in.
  bool get loggedIn;

  /// Logs in, saving the [User].
  Future<void> login(AuthenticationParams params);

  /// Logs …
Run Code Online (Sandbox Code Playgroud)

architecture authentication state flutter clean-architecture

7
推荐指数
1
解决办法
2009
查看次数

dart 在另一个文件中显示另一个方法的文档

是否可以在不同文件中的另一个函数的文档中显示一个函数的文档?宏仅在其自己的文件中有效。

在Flutter源码中,他们使用了这样的东西,但似乎没有任何效果:

/// {@macro flutter.widgets.editableText.keyboardType}
Run Code Online (Sandbox Code Playgroud)

dart dartdoc

5
推荐指数
1
解决办法
640
查看次数