【发布时间】:2015-12-29 03:48:22
【问题描述】:
我有一个 react/redux 应用程序,我在其中进行了一些过滤和搜索。由于 API 的设置方式,我必须在接收过滤器和发送新的搜索查询之间做一些基础工作。所以我有一个活动过滤器的小参考图,每次我选中或取消选中一个过滤器时都会更新。问题是,我希望运行更新过滤器的操作,然后使用新过滤器参数调用服务器的操作,我不确定这个工作流应该如何进入 redux。
所以我调用了这个动作,然后它以这样的更新状态命中减速器 -
case actions.TOGGLE_FILTER:
return toggleFilter(state, action);
var toggleFilter = function(state, action){
var currentFilters = state.toJS().activeFilters || {};
var removeFilterFromActive = function(item) {
if(item != action.filter.search){
return;
}
}
//already exists, remove from list (toggle off)
if (currentFilters[action.filterGroup.parentSearch] && currentFilters[action.filterGroup.parentSearch].indexOf(action.filter.search) > -1) {
var itemIndex = currentFilters[action.filterGroup.parentSearch].indexOf(action.filter.search);
currentFilters[action.filterGroup.parentSearch].splice(itemIndex, 1);
} else {
//add to obj
var newObj = {};
if (currentFilters[action.filterGroup.parentSearch]) {
currentFilters[action.filterGroup.parentSearch].push(action.filter.search);
} else {
newObj[action.filterGroup.parentSearch] = [];
newObj[action.filterGroup.parentSearch].push(action.filter.search);
_.extend(currentFilters, newObj);
}
}
return state.set('activeFilters', fromJS(currentFilters));
};
所以这组装了我的activeFilters 状态,现在似乎工作正常。但我不知道的部分是如何使用我更新的 activeFilters 调用服务器。现在我只是从它正在使用的组件中调用这个动作。
当这个动作完成时,有没有办法在reducer 中链接、承诺或分派另一个动作?任何有关如何解决此问题的建议将不胜感激。谢谢!
【问题讨论】:
标签: javascript reactjs redux