我有一个使用 Facebook 的 Flux Architecture 开发的网络应用程序。该页面有两个视图:一个显示 TODO 项目列表。第二个视图显示一组随机的 TODO 项。
显然有两个问题需要由商店管理。第一个是可用 TODO 的列表。第二个是随机选择的 TODO 项列表。
因此,我有一个TODOStore
,他只关心管理可用的 TODO 项目。它对loadTODOs
, addTODO
, deleteTODO
,有动作editTODO
。启动时,此存储不会加载所有 TODO 项。我希望它仅在必要时从数据库中检索 TODO 项目列表。
第二家店是RandomTODOListStore
。它的职责是管理随机选择的 TODO 项。在我看来,应该通过, 使用来RandomTODOListStore
访问 TODO 项。TODOStore
TODOStore.getTODOItems()
function RandomTODOListStore() {
var $randomTODOs = [];
dispatcher.register(function(payload) {
var action = payload.action;
switch (action.actionType) {
case Constants.LOAD_RANDOM_TODO:
loadRandomTODO();
break;
}
});
function loadRandomTODO() {
$randomTODOs = selectRandom(TODOStore.getTODOList());
emit("change");
}
}
问题在于,如前所述,TODOStore
启动时不会加载 TODO 项。
问题是:“如何RandomTODOListStore
保证TODOStore
已经检索到 TODO 项?” .