我有一个组件,我们称之为 List
,它调用一个 Action 创建者 Action1.getItems()
。
在 Action1.getItems()
从服务器检索信息后,我需要调用另一个 Action 创建者: Action2.getMoreItems()
,这是不同文件中完全不同的 Action 。
事实:
Action2.getMoreItems()
的 _onChange()
中调用 List
因为它会抛出一个错误“Cannot dispatch in the middle of a dispatch ...
”可能性?
Action2.getMoreItems()
内部调用Action1.getItems()
Action1.getItems(callback)
并在该回调中从 Action2.getMoreItems()
组件调用 List
。 我相信这可能是 Flux 的一个非常基本的使用,但我仍然无法理解如何正确使用它,这两种解决方案对我来说都很丑陋。
建议?
谢谢!
最佳答案
getMoreItems
是否依赖于 getItems
的返回值?如果是这样,您可以在 .then
的 getItems
回调中调用该操作。
如果不是,那么您可以同时调用这两个调用,然后连接 promise 的结果。
所以我的投票在你的问题中排名第二。我认为这根本不是一个丑陋的解决方案。您将获取物品和更多物品的责任委托(delegate)给您的行动。组件本身对此一无所知,只是发送了对这些项目的请求。它们的构建方式应该对组件透明。
关于reactjs - react + 通量 : best practice for calling an action after another action?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38129293/