我目前在我们的Flux应用中遇到问题,其中组件需要首先获取当前用户,并且当且仅当获取当前用户时,使用不同的用户获取该用户的通知Ajax调用,如下所示:
_onCurrentUserChange: function() {
this.setState(getStateFromStores());
NotificationsActionCreator.getNotifications();
},
正如您所看到的,在我们知道当前用户已更改后,我尝试将操作发送到getNotifications
。
但是,Flux不允许多次调度操作,我们已决定应通过操作调度所有服务器请求。
因此,我无法等待收到currentUser,然后发送操作以获取通知。
正确的Flux方法是什么?
答案 0 :(得分:1)
所以我认为我发布了修复此内容以供其他人查看的方式。
基本上,我们最终在WebApiUtils模块中创建了一个函数,该函数对getCurrentUser和getNotificationsForCurrentUser后端路由进行顺序Ajax调用。然后,我们调度包含currentUser和通知的操作。 currentUser和notification存储都监听此事件,并且每个事件都会获取所需的数据。
如果您想查看此代码,请查看: https://github.com/krazemon/repcoin/blob/master/js/api.js#L16 https://github.com/krazemon/repcoin/blob/master/js/stores/AuthStore.js#L59 https://github.com/krazemon/repcoin/blob/master/js/stores/NotificationsStore.js#L59-L62
我选择此解决方案是因为它不会违反我们商店的同步属性,并且允许我们避免级联调度。