Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通量和反应中的依赖作用_Javascript_Reactjs_Reactjs Flux_React Jsx - Fatal编程技术网

Javascript 通量和反应中的依赖作用

Javascript 通量和反应中的依赖作用,javascript,reactjs,reactjs-flux,react-jsx,Javascript,Reactjs,Reactjs Flux,React Jsx,我目前在我们的Flux应用程序中遇到一个问题,组件需要首先获取当前用户,并且,如果且仅当当前用户被获取时,使用不同的Ajax调用获取该用户的通知,如下所示: _onCurrentUserChange: function() { this.setState(getStateFromStores()); NotificationsActionCreator.getNotifications(); }, 如您所见,在知道当前用户已更改后,我正试图将操作分派到getNotifications

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

_onCurrentUserChange: function() {
  this.setState(getStateFromStores());
  NotificationsActionCreator.getNotifications();
},
如您所见,在知道当前用户已更改后,我正试图将操作分派到
getNotifications

但是,Flux不允许多次分派操作,我们决定所有服务器请求都应该通过操作分派

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


做这件事的正确方法是什么?

所以我想我应该把我解决这个问题的方法发布给其他人看

基本上,我们最终在WebApiUtils模块中创建了一个函数,该函数对getCurrentUser和getNotificationsForCurrentUser后端路由进行连续的Ajax调用。然后,我们分派一个包含currentUser和通知的操作。currentUser和notification存储都侦听此事件,并且各自获取所需的数据

如果要查看此代码,请查看:


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

我遇到了类似的问题,我添加了一个项(ajax调用1),然后获取包含所有项的整个列表,包括一个新添加的项(ajax调用2)。我决定也在api中解决这个问题,就像你一样。谢谢你发布源代码的链接。没问题。很高兴这对你有帮助。