Redux-服务连接等副作用的时间旅行

Redux-服务连接等副作用的时间旅行,redux,redux-thunk,Redux,Redux Thunk,我正在使用redux thunk并开始看到一些限制 假设我有动作PUSHER\u CONNECT,PUSHER\u CONNECTED,PUSHER\u DISCONNECTED,PUSHER\u LISTEN\u TO\u CHANNEL,PUSHER\u MESSAGE\u RECEIVED,等等。状态将有一些简单的指示连接状态的东西 { connection: 'connected' } // OR { connection: 'disconnected' } 我如何才能真正地在这两个之

我正在使用redux thunk并开始看到一些限制

假设我有动作
PUSHER\u CONNECT
PUSHER\u CONNECTED
PUSHER\u DISCONNECTED
PUSHER\u LISTEN\u TO\u CHANNEL
PUSHER\u MESSAGE\u RECEIVED
,等等。状态将有一些简单的指示连接状态的东西

{ connection: 'connected' } // OR
{ connection: 'disconnected' }
我如何才能真正地在这两个之间来回移动:
PUSHER\u已连接
PUSHER\u已断开
,因为PUSHER连接仍在某个地方。我正在考虑将pusher对象和相关对象保持在状态,如果它的
pusher\u已断开连接
,请将它们设置为
null
。但不能保证这些对象是不变的

另一个想法是,我会添加一个检查
PUSHER\u MESSAGE\u RECEIVED
:if
state.connection!='已连接“
然后不要推送新消息。。。模拟这是一个“真实的”断开连接。类似地,添加一个检查
PUSHER\u CONNECT
,如果PUSHER对象在那里并且已连接,不要重新连接,只需将状态更改为
{connection:'connecting'}


您将如何处理此问题?

您可以订阅商店并管理类似“双向绑定”的内容

在侦听器中,检查状态,如果它与存储状态冲突,则执行必要的效果。注意不要进入无限循环


这是在时间旅行中同步URL栏所采用的方法

你在说什么样的时间旅行?Redux开发工具?它们只会改变应用程序所看到的当前状态,但不会影响副作用。为什么要更改副作用?是的,请重新使用DevTools。我只是想知道,是否有可能有一种方法来恢复来回的副作用,所以它是真正的“时间旅行”。如果我回到我没有连接到Pusher的状态,但连接仍然存在,那就不是真正的时间旅行。这方面有最佳实践吗?