Redux和远程/本地数据结构转换



我使用Redux已经有一段时间了,我使用特定格式(后端DTO)从一些API获取一些远程数据。

事实上,我从服务中得到的数据结构并不是我想要使用的。我想使用一个只与我的客户端相关的特定模型(减少耦合,称为客户端模型)。

我的问题是:我应该在哪里将具有特定数据结构的远程数据转换为我的客户端模型

我一直在做多个项目,人们似乎正在使用不同的方法来做到这一点:

  • 使用redux-thunk,在thunk内部,他们将远程对象映射到本地对象

  • 使用将由Redux reducer管理的LOAD_REMOTE_DATA操作,该操作仅旨在调度新的COMPUTE_LOCAL_DATA

当使用这两种方法时,我会有点奇怪,就像两种方法里面的气味。这就像我错过了什么,我错过了远程和本地结构之间的对话层。。。

这个答案可能有点固执己见。我正在使用redux-saga来调用外部API。我个人会跳过你提到的方法。

  1. Thunk方法:我会保持Thunk/sagas的通用性(因此避免特定的数据建模),以便可以重用Thunk/saga代码
  2. LOAD_REMOTE_DATA方法:如果你想这样做,更好的方法是实现一个自定义的redux中间件来进行建模

我建议在执行操作时原样传递远程数据,并从目标还原器调用一些建模函数来格式化数据,然后返回新状态

最新更新