redux store和database之间的循环,导致reducer

时间:2018-04-15 03:39:51

标签: javascript firebase redux synchronize

我有一个JavaScript应用程序,它使用redux存储来跟踪应用程序的当前状态。我最近添加了将redux存储状态推送到由远程网站(Firebase)提供的在线数据库的功能。

这意味着当用户登录应用程序时,redux存储的状态将从数据库中提取,并使用操作应用,以便正确设置应用程序的状态。

接下来,我添加了应用程序在更改内容时自动将更改推送到redux存储区到数据库的功能。这部分也可以单独使用。

我现在遇到的问题是我同时启用这两个问题。我有一个要求,可以将多个用户连接到在线数据库“会话”。这意味着两个用户都需要监听数据库中的更改,以相应地同步他们自己的redux存储。我看到的问题是当我尝试允许来自本地redux商店的更新被推送到数据库时。浏览器抱怨reducer的redux调度操作。发生了什么,在应用程序中,用户启动一个动作来更新redux存储的状态。在reducer中,我看到商店有一个变化,所以我呼吁数据库更新其状态。当数据库状态发生变化时,我会触发一个监听器来通知我需要更新redux存储。然后,这将启动另一个更新redux存储的操作,这是我收到错误的地方。我该如何打破这个循环?

我需要能够监听数据库中的更改并让这些更改启动更新redux存储的操作。但是我还需要redux存储能够监听更改,并在商店更改时启动对数据库的更新。我不想陷入无限循环,当2个用户对他们自己的redux商店进行不同的更改并且他们的更改都在数据库中注册时,我需要能够优雅地处理这个案例。

0 个答案:

没有答案