Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.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 在ReactJS中,由于发生了另一个操作,如何/在何处触发执行异步get的操作?_Javascript_Reactjs_Flux - Fatal编程技术网

Javascript 在ReactJS中,由于发生了另一个操作,如何/在何处触发执行异步get的操作?

Javascript 在ReactJS中,由于发生了另一个操作,如何/在何处触发执行异步get的操作?,javascript,reactjs,flux,Javascript,Reactjs,Flux,我有个问题需要帮助。我正在使用fluxxor for flux,在我的ui中,我有一个列表,用户可以从中选择,该列表将根据所做的选择更新一个表 所以我有一个存储列表选择和表数据。我调用一个ItemSelectedFromList操作,该操作由存储监听以更新其存储的选择值,ui重新渲染器在屏幕上的标记中显示更新的选择 我需要调用另一个操作来根据选择存储值更改来更新表,这将异步获取数据,并在操作完成时将数据加载的操作分派给存储。此DataLoaded操作在stores表数据更新后被调度,视图将使用新

我有个问题需要帮助。我正在使用fluxxor for flux,在我的ui中,我有一个列表,用户可以从中选择,该列表将根据所做的选择更新一个表

所以我有一个存储列表选择和表数据。我调用一个ItemSelectedFromList操作,该操作由存储监听以更新其存储的选择值,ui重新渲染器在屏幕上的标记中显示更新的选择

我需要调用另一个操作来根据选择存储值更改来更新表,这将异步获取数据,并在操作完成时将数据加载的操作分派给存储。此DataLoaded操作在stores表数据更新后被调度,视图将使用新表信息重新提交

我的问题是,在存储更新了选择值之后,我应该在哪里调用第二个操作来更新表

存储可以调用另一个操作吗?最佳做法是什么

呈现表和选择标记的组件只是通过fluxxor getStateFromFlux从父组件获取这些道具,后者从存储中获取信息

我是否应该在存储中添加needToUpdateTable标志,并让父组件在getStateFromFlux方法中为true时调用该操作


非常感谢您的帮助。

我相信您可以,但我不知道您在Fluxxor中会如何做

我认为一个操作调用其他获取数据的操作是完全可以的,事实上,这正是像Redux这样的库所做的

一个例子。我想从服务器上获取歌曲,我将调度操作fetchSongs(),此操作将代表我调度操作,如下所示:

  • 我发送了一些歌曲()
  • 已代表我发送操作requestSongs()
  • 打AJAX电话
  • AJAX调用返回
  • 已代表我发送操作receiveSongs()

我以为你不应该一个动作触发另一个动作。。。行动是行动,而不是方法。我将把公共代码放在一个方法中,您可以从两个reducer的作用域调用并传递所需的对象,以保持内容的纯粹性,而不重复。