我有一种情况,我觉得我需要调度一个动作来响应另一个动作,而我不知道最佳的解决方法。
分派操作以响应HTTP响应,例如:
type: 'auth' data: { username: 'tom' }
因为该响应成功,所以我想调度一个将用户发送到首页的操作:
type: 'navigate' date: { where: 'home' }
这对我来说似乎是明智的选择:这件事发生了,所以现在我希望这件事发生。麻烦的是,Flux Dispatcher不允许这样做,因为我们仍处于调度周期中。我明白了为什么在分派时分派是一个坏主意。
有人用多个调度程序解决了这一问题,而Flux的作者似乎确定您只需要一个调度程序,并且您需要重新考虑您的商店。
我看不到如何在不混淆意图的情况下重组商店以促进此过程。我UserStore了解auth动作,RouteStore也了解navigate动作。任何关于如何改变商店以促进这一点的建议将不胜感激。
UserStore
auth
RouteStore
navigate
我觉得setImmediate可以使用,但似乎有点脏。我还认为,将动作排在队列中的调度员可能会有所帮助,但我能感觉到这可能会导致讨厌的问题。
setImmediate
最好的方法是什么?
通常,解决此问题的方法是备份并查看原始操作,如果需要派生值,则等待第二个操作中尝试发送的值。
因此,在这种情况下,您将只对UserStore和RouteStore中的“ auth”做出响应。