Flux with React Audio Component 以一种方式流动

Flux with React Audio Component flowing one way

我正在 flux/react 使用 html5 音频组件开发一个简单的音频播放器。

我知道 flux 的关键原则之一是数据应该单向流动。

动作->存储->组件

"store" 应该是真实的来源。

我 运行 在这种特定情况下很难遵循这些原则,因为数据必须来自音频组件,例如 mp3 的持续时间是音频组件的一部分 api , 以及它的当前位置。

我想也许我可以使用一个动作将所有初始数据传递给并用新的轨道位置更新它(当用户正在播放剪辑时)但这感觉真的很难看......我怎么能遵守考虑到这一点的通量原则?

React Router 的创建者之一喜欢说,"Who owns the data?" 如果它是应用程序,那么它就属于商店。如果它完全包含在组件中,则该组件可以管理自己的状态。

在这种情况下,我认为最好的情况是应该由组件自己来处理。也许如果音频是 interrupted/paused,那么该操作可能会反过来通知可以保存位置的商店等,但这可能只有在页面上只有一个播放器的情况下才会如此。