2017-02-25 77 views
0

我目前正在使用REDX,我只是遇到一個功能,幾乎相同的其他網頁唯一的區別是在method.how中使用的服務我可以讓它DRY在減少。Redux動作創建器略有相同的不同頁面

請注意,我正在使用combineReducer和路由器爲不同的頁面。

例如: 在 - 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)) 
     ); 
    }; 
} 

中 - 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

您可以使用封這樣

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)變量s,它將返回一個可以訪問這兩個變量的函數。

相關問題