在ReactJS中,由于发生了其他操作,我如何/在何处触发执行异步获取的操作?

时间:2016-03-04 20:17:56

标签: javascript reactjs flux

我有一个需要帮助的反应问题。我使用fluxxor作为焊剂,在我的ui中,我有一个列表,用户可以根据所做的选择从中选择更新表。

所以我有一个包含列表选择和表数据的商店。我调用一个ItemSelectedFromList操作,该操作由商店监听以更新其存储的选择值,而ui重新呈现则在屏幕上显示更新的选择。

我需要调用另一个操作来根据此选择存储库值更改来更新表,这将异步获取数据并在存储完成时调度存储的DataLoaded操作。调度此DataLoaded操作,更新stores表数据,并使用新表信息重新呈现视图。

我的问题是,在商店更新选择值后,我应该在哪里调用第二个操作来更新表?

商店可以调用其他操作吗?什么是最佳做法?

我呈现表和选择标记的组件只是通过fluxxor getStateFromFlux从父组件获取这些道具,它从商店中获取信息。

我应该在商店中添加needToUpdateTable标志,并让父组件在getStateFromFlux方法中调用该操作时为true吗?

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我相信你可以,但我不知道你会怎么做Fluxxor。

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

http://redux.js.org/docs/advanced/AsyncActions.html

一个例子。我想从服务器获取歌曲,我会发送动作fetchSongs(),这个动作将代表我发送动作,如下:

  • 我发送动作fetchSongs()
  • 动作requestSongs()代表我发送
  • 进行AJAX通话
  • AJAX调用返回
  • 动作receiveSongs()代表我发送