0
私は小さなプロジェクトをやってレフィックスを学んでいます。すべて正常に動作していますが、私はどのように私がそのようなコードをリファクタリングできるかを知る必要があります。このような状況では、私がやったようにif conditions
を使うと良いかもしれませんが、もし私が7-8言語を扱う必要があればどうしますか? else if for 7 times
を使用することはできません。そのような状況に対処する適切な方法は何ですか?ここでそのような質問をするのは適切な場所ですか?ロケール言語レデューサー
switch (action.type) {
case 'LOCALE_SELECTED':
switch (action.locale) {
case 'fr':
return { ...initialState, lang: FRENCH.lang, messages: FRENCH.messages };
default:
return { ...initialState, lang: ENGLISH.lang, messages: ENGLISH.messages };
}
break;
default:
return state;
}
や読みやすさのために(多くの場合があり、特に場合)(これは "に向かって移動され、別の機能に出てサブケース文を破る:あなたが巣あなたのcase文したい場合は、できる
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 –