Flux和React JS中的相关操作

时间:2015-02-22 19:10:59

标签: javascript reactjs reactjs-flux react-jsx

我目前在我们的Flux应用中遇到问题,其中组件需要首先获取当前用户,并且当且仅当获取当前用户时,使用不同的用户获取该用户的通知Ajax调用,如下所示:

_onCurrentUserChange: function() {
  this.setState(getStateFromStores());
  NotificationsActionCreator.getNotifications();
},

正如您所看到的,在我们知道当前用户已更改后,我尝试将操作发送到getNotifications

但是,Flux不允许多次调度操作,我们已决定应通过操作调度所有服务器请求。

因此,我无法等待收到currentUser,然后发送操作以获取通知。

正确的Flux方法是什么?

1 个答案:

答案 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

我选择此解决方案是因为它不会违反我们商店的同步属性,并且允许我们避免级联调度。