我开始阅读Redux,我喜欢到目前为止看到的内容。我有一个值得关注的领域,它是异步行为。我已经看到了这个地区的传奇,thunk和其他人的帮助,但我觉得我错过了什么。
我很喜欢使用FSM来处理应用程序逻辑并防止事情失去同步,所以来到redux并且看不到这样的东西对我来说有点不耐烦。
我有一个例子,我一直想回到我想要redux(或一些插件)来解决:
我有一个登录表单。当用户按下登录时,将对服务器进行异步调用。这可以。但是,如果用户再次按下登录,则对服务器进行另一次调用,并且应用程序状态现在不同步。我可以添加一个定义loggingIn
的状态属性,但这仅适用于此示例。
让我们说我有更大的依赖。让我们说当用户登录时,会执行一些操作来预加载一些数据。并且该数据包含要加载的更多数据的预检。现在,这引入了许多if / else条件逻辑,并向状态添加了更多信息。在FSM中,我将为这些定义多个并发状态。例如user:loggedIn
,manifest:fetched
,pageData:fetched
。每个州都是彼此的孩子:user:loggedIn -> manifest:fetched -> pageData:fetched
。因此,如果请求登录或重新获取数据,则会抛出错误,因为它不是当前状态的有效处理程序。如何在Redux中实现这种复杂性?它甚至可能吗?
另一个例子。取决于Reddit API示例。让我们说用户转到reddit帖子。我不希望用户在邮件被加载之前能够对帖子提交评论。我知道这可以在UI方面用条件等处理,但这看起来很古老。
我非常感谢任何指导。
谢谢!