【问题标题】:How to think about model/state structure when using ComposableArchitecture?使用可组合架构时如何考虑模型/状态结构?
【发布时间】:2022-01-12 11:09:58
【问题描述】:

我正在尝试使用 SwiftUI 和 ComposableArchitecture 创建一个基本的时间跟踪应用程序。但是我正在努力思考如何以模块化方式对数据结构/应用程序状态进行建模。该应用程序是一个时间跟踪应用程序,因此它有:一个Project,它可以有零个或多个Task,它可以有零个或多个Activity 条目。

下面是我当前结构的示意图。

我得到的问题是,有了这个结构,现在ProjectState 有两个不同的任务列表。一个通过project.tasks,另一个通过tasks: IdentifiedArrayOf<TaskState>

我应该如何考虑对此进行建模?

我不想合并数据模型和应用程序状态,因为应用程序状态更特定于视图,并且可能会添加视图特定状态,这可能在不同的地方有所不同。数据模型是将在整个应用程序中使用的通用模型。这就是为什么在Project->Task->Activity 之间建立关系可能是件好事。但是可组合架构的应用状态也需要不同状态之间的类似关系。

【问题讨论】:

    标签: swift model architecture state swift-composable-architecture


    【解决方案1】:

    好的,所以在看了很多example projects from PointFree 之后,我想我在看这个时可能有一个错误的金属模型。我认为我将 数据模型应用程序状态 视为两个不同的东西是错误的,并且正在寻找一种同步它们的方法。

    最后我只是接受了它们是同一件事,并将所有内容直接移至AppState。这让一切变得更容易推理,而且我可以删除很多额外的代码,这可能暗示这是一条不错的道路。

    但如果有人对此有更多意见,我仍然希望得到一些反馈。以下是我目前的结构。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-04
      • 2021-05-22
      • 1970-01-01
      • 2014-10-26
      相关资源
      最近更新 更多