Я использую momentjs
в моем проекте React. Я реализовал настройку локали через React Context API, но оказалось, что изменение глобальной локали momentjs
не влияет на существующие объекты. Это функция начиная с версии 2.8.0, см. Глобальное изменение языкового стандарта .
moment.locale(); // 'en'
const m = moment();
m.format("L"); // 11/01/2018
moment.locale("de")); // 'de'
m.format("L"); // 11/01/2018
Компонент LocaleProvider
переключает локали.
// LocaleProvider class component
onChangeLocale = locale => moment.locale(locale);
Дочерний компонент отображает специфичный для локали momentjs
экземпляр.
// child element class component
render() {
const { currentDate } = this.state;
return <div>{currentDate.format("L")}<div>;
}
Как можно заставить существующий объект momentjs
использовать измененную локаль?