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

时间:2017-11-02 08:40:53

标签: javascript redux

我正在使用Redux一段时间,我用来从特定格式的某些API(后端DTO)获取一些远程数据。

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

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

我一直致力于多个项目,似乎人们正在使用不同的方法来实现这一目标:

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

  • 使用将由Redux reducer管理的LOAD_REMOTE_DATA操作,该操作仅用于发送新的COMPUTE_LOCAL_DATA

虽然使用这两种方法,我会有点奇怪,就像两种方式里面的气味一样。这就像我错过了一些东西,我错过了远程和本地结构之间的对话层......

1 个答案:

答案 0 :(得分:1)

这个答案可能有点自以为是。我使用redux-saga来调用外部API。我个人会跳过你提到的方法。

  1. Thunk方法:我会保持thunk或sagas通用(因此避免特定的数据模型),以便可以重用thunk / saga代码。
  2. LOAD_REMOTE_DATA方法:如果您想这样做,更好的方法是实现自定义redux中间件来进行建模。
  3. 我建议只是按原样传递远程数据和目标reducer,在返回新状态之前调用一些建模函数来格式化数据