У меня есть редуктор, который отслеживает какую-то дату в моем состоянии приложения. По умолчанию это текущая дата, полученная через library.js.Redux: глобальная конфигурация для редуктора
const selectedDateReducer = (state = moment(), action) => {
switch (action.type) {
case 'SET_DATE':
return action.date;
default:
return state;
}
}
Это работает хорошо, но теперь я хочу, чтобы все даты, чтобы быть в конкретной местности:
const selectedDateReducer = (state = moment().locale(globalLocale), action) => {
switch (action.type) {
case 'SET_DATE':
return action.date;
default:
return state;
}
}
Я также нуждаются в таком же локаль в моем React компоненте, поэтому я передаю это нравится:
<Component locale={globalLocale}></Component>
и не хотите жестко кодировать его.
Глобальные переменные также не очень хорошо работают, поскольку их трудно переопределить во время тестов.
Если это не было частью инициации состояния, я мог бы просто передать его как часть какого-либо действия, но мне нужен globalLocale
в моем коде инициализации редуктора.
Возможно, в этой конкретной ситуации я мог бы перемещать логику локали в другое место, но меня в основном интересует какой-то общий шаблон.