我现在正在尝试使用redux,并且对它背后的想法非常兴奋,但是第一个真正的任务毁了整个事情.
在Redux中,我们应该存储不可变状态并生成一些reducers来进行转换.这意味着可以通过给定的先前状态和触发的动作列表来复制每个州.
但是如果我需要存储第三方/遗留有状态对象呢?例如,它可能类似于gallery或websocket客户端.我假设我能够以某种方式使用reducers来启动/停止/管理它,但是状态我不再是无状态的并且不能保证在给定的reducers列表中可重复(websocket客户端可能会生成新的会话ID,甚至是无法保持连接).
什么是解决这些问题的便捷方法?
正如我所看到的,你的问题归结为:你如何将Redux与有状态组件(传统/第三方)混合?
你是对的,Redux更适合于controlled
组件,即大多数无状态的组件,并且应该接收所有组件props
.请记住,拥有某些状态并不一定会使组件在Redux中无法使用.示例:对于自动填充组件,"打开"状态(无论下拉列表是否可见)不一定必须由Redux控制.因此,根据组件的实现方式,您肯定很难将其集成到Redux中,或者可能没有.
您有两个选择:您要么重构有问题的组件,以便它们现在受到控制,要么您不将它们的状态保留在Redux上(您不需要).答案将根据具体情况而有所不同.我知道,对于你的案例,没有全球公认的解决方案.
归档时间: |
|
查看次数: |
2734 次 |
最近记录: |