2
私はReduxと私のレデューサーを使ってかなりシンプルなアプリケーションを構築しています。それは技術的には機能しますが、それはコードの重複の多くです。私の還元レデューサーはすべて同じように見えます。私はそれを間違っているのですか?
// The employees reducer
export default (state = initialState, action) => {
switch (action.type) {
case EMPLOYEES_REQUEST:
return [ ...state, { isFetching: true } ]
case EMPLOYEES_SUCCESS:
// DEBUG
console.log('Dispatching employees');
console.log(action.response);
// END DEBUG
// Return employees directly in the employees state
return { ...state, list: JSON.parse(action.response) };
case EMPLOYEES_FAILURE:
return [ ...state, { isFetching: false } ]
default:
return state
}
}
そして
// The services reducer
export default (state = initialState, action) => {
switch (action.type) {
case SERVICES_REQUEST:
return [ ...state, { isFetching: true } ]
case SERVICES_SUCCESS:
// DEBUG
console.log('Dispatching services');
console.log(action.response);
// END DEBUG
// Return services directly in the services state
return { ...state, list: JSON.parse(action.response) };
case SERVICES_FAILURE:
return [ ...state, { isFetching: false } ]
default:
return state
}
}
異なるアクションを持つ一般的な減速を使用するために私ができる何かがありますか?
ありがとうございます!
ちょうど私の$ 0.02あなたは 'SERVICE_SUCCESS'とあなたがもう一度'キーを使用しているlist' 'EMPLOYEES_SUCCESS'呼び出したときに、本当に例えば、同じキーを使用して使用すべきではありません。従業員リストとサービスリストを区別する方法はありません。あなたは 'employeeList'と' serviceList' IMOを好むべきです。 'isFetching'と同じです - 何を取得していますか?それは本当に明らかではありません。 'isFetchingEmployee'と' isFetchingService'は混乱を緩和するのに役立ちます。 – Dan