0
我通過做一個小型項目來學習REDX。一切工作正常,但我需要知道我可以重構這樣的代碼。對於這種情況,像我一樣使用if conditions
可能會很好,但如果我需要處理7-8種語言,該怎麼辦?使用else if for 7 times
將不可行。處理這種情況的正確方法是什麼?在這裏問這樣的問題是否正確?語言環境語言縮減器
import { FRENCH } from '../../public/messages/fr';
import { ENGLISH } from '../../public/messages/en';
const initialState = {
lang: FRENCH.lang,
messages: FRENCH.messages
};
export const localeReducer = (state = initialState, action) => {
switch (action.type) {
case 'LOCALE_SELECTED':
if (action.locale === 'fr') {
return { ...initialState, lang: FRENCH.lang, messages: FRENCH.messages };
} else if (action.locale === 'en') {
return { ...initialState, lang: ENGLISH.lang, messages: ENGLISH.messages };
} break;
default:
return state;
}
};
在需要檢查更多條件的情況下,您更喜歡哪一種? – Serenity
我更喜歡把事情分解(!);讀取更好,減速器可以專注於狀態的特定部分並且更容易測試。 –
當然,如果案件數量相對較少,打破它可以是矯枉過正的。在梳理減速器建立國家的主題看看這個:http://redux.js.org/docs/api/combineReducers .html –