Redux动作创建者在不同的页面

时间:2017-02-25 03:16:34

标签: react-redux

我目前正在使用redux,我只是遇到一个与其他页面几乎相同的函数,唯一的区别是在method.how中使用的服务可以让我在redux中使用DRY。

请注意我正在使用combineReducer和路由器来处理不同的页面。

e.g: in - InsuranceCompanyIndex.js

export function fetchInsuranceCompanies() {
return (dispatch, getState) => {
        const state = getState();
        dispatch({ type: LOADING });
        InsuranceCompany.paginate(state.dataTable.tableFilter).then(
            (response) => dispatch(setInsuranceCompanies(response.data))
        );
    };
}

in - InsuranceCompanyLines.js

export function fetchInsuranceLines() {
     return (dispatch, getState) => {
        const state = getState();
        dispatch({ type: LOADING });
        InsuranceLines.paginate(state.dataTable.tableFilter).then(
            (response) => dispatch(setInsuranceLines(response.data))
        );
    };
}

1 个答案:

答案 0 :(得分:1)

你可以像这样使用闭包

export function fetchInsuranceData(InsuranceData,setInsuranceData) {
    return (dispatch, getState) => {
         const state = getState();
         dispatch({ type: LOADING});
         InsuranceData.paginate(state.dataTable.tableFilter).then(
            (response) => dispatch(setInsuranceData(response.data))
        );
    };
}

现在每次调用fetchInsuranceDat时,只需传递这两个(InsuranceData,setInsuranceData)变量,它就会返回一个可以访问这两个变量的函数。