【发布时间】:2018-01-24 20:04:23
【问题描述】:
我尝试搜索有关如何链接需要配置或由某些经理提供的复杂 API 的“良好实践”,但我似乎无法找到如何通过 redux 建立“良好”数据流。
到目前为止,我一直在考虑创建一个 reducer,其操作映射我可以在给定复杂对象上调用的每个方法。
为了提供更多上下文,我正在构建一个框架以使用此库 (https://github.com/Polidea/react-native-ble-plx) 与蓝牙设备交互,并且 startScanDevice 返回我可以与之交互的复杂对象 (https://polidea.github.io/react-native-ble-plx/#device),它也拥有它自己的状态(例如,设备知道它是否已连接,它也知道它的蓝牙服务等)。
根据我的阅读,redux 状态应该具有简单的对象,这样它就可以具有时间旅行属性并简化持久性。
存储那些复杂的对象并在我的组件、reducer、动作、商店和我目前正在处理的这个 API 之间实现交互是一个好的设计?
目前,我正在考虑为我的 API 提供回调,该 API 将调度带有新数据的 redux 操作以添加到 redux 存储中,但我似乎找不到合适的方法来存储我的复杂对象并提供对它的访问为了调用这些方法并给它们回调。
这是一个完整的流程示例:
- 从 plx-ble API 调用 startScanDevice 并提供回调以接收现有 API 给出的设备对象
- 接收设备对象并将其存储在某处
- 使用有关我在整个应用程序中需要的设备对象的正确信息更新 redux 存储
- 从 reducer 中,检索步骤 2 中的设备对象并调用与设备交互的方法(从特征读取的示例)
- 使用第 4 步中读取的数据更新 redux 存储
第 2 步和第 4 步是我似乎找不到合适的方法。
任何帮助将不胜感激!
【问题讨论】:
标签: reactjs react-native redux react-redux