我有一个Calendar
组件,当使用名为LoadOnMount
的某个道具进行渲染时,需要调用服务器来加载一组航班。
问题是我通过收听CalendarStore
的{{1}}事件来更新日历,该事件由我的调度程序调度的Events.UPDATE
操作触发,我加载了集合航班使用另一个名为UPDATE_CALENDAR
的行动。因此,当我从LOAD_FLIGHT_LIST
组件的Calendar
函数调用此新操作时,我收到ComponentDidMount
错误。
任何方式来处理这些依赖关系? (日历也从服务器获取)
答案 0 :(得分:1)
您有两个我可以识别的问题:
首先,您正在尝试让调度员在调度期间调度。这不是你应该这样做的方式。
第二个是您似乎正在从您的调度处理程序内部执行AJAX /异步调用。我不想说你永远不应该这样做,但在你的申请中似乎没有必要。
这是我认为类似的另一个堆栈溢出问题的链接:https://stackoverflow.com/a/23637463/2152216
区别在于提问者正在尝试从他的调度处理程序中执行Ajax调用,而您似乎正在尝试调度一个事件,该事件将在事件处理期间触发ajax调用。
您可以做的是创建一个异步加载航班列表的操作,然后调度FLIGHT_LIST_LOADED
操作,然后将获取的航班列表传递给它。您的商店应该处理此操作并为所有组件观察者广播更改事件。
我希望你明白我在说什么。如果您认为我误解了您的问题,请告诉我。