Redux合并来自不同reducer的2个状态

时间:2018-08-08 09:44:16

标签: javascript reactjs redux

我有2个reducer(categoryReducer和productReducer),它们从API提取数据。两者都设置加载和错误状态。我将这两个减速器与CombineReducers结合使用:

const rootReducer = combineReducers({
 categoryReducer,
 productReducer
});

是否可以合并这两个减速器的负载和错误状态?因为我的应用程序应该显示加载文本,所以每当加载状态为true时。这样我可以做类似的事情:

if (this.props.isLoading)
   ...

代替两个不同的加载状态

if (this.props.isCategoryLoading || this.props.isProductLoading)
   ...

1 个答案:

答案 0 :(得分:0)

您可以使用选择器,并从选择器中的isCategoryLoading和isProductLoading中计算isLoading:

// Your container component:
const mapStateToProps = (state) => ({
    isLoading: getIsLoading(state)
});

export const YourContainer = connect(
    mapStateToProps,
    mapDispatchToProps
)(YourComponent);

// Your selector:

export const getIsLoading = state => state.isCategoryLoading || state.isProductLoading;