当我使用 like 时dayjs(date).locale('te').format('YYYY MMM DD'),我会得到英语的月份值。为了使用语言环境,我必须导入语言环境。
import * as locale from 'dayjs/locale/te';
Run Code Online (Sandbox Code Playgroud)
问题是我没有找到动态导入区域设置的方法。我无权访问nodejs require() 函数。我有基于反应的应用程序。如何缓解这个问题?
动态导入没有错误的解决方法:
const locales = {
de: () => import('dayjs/locale/de'),
en: () => import('dayjs/locale/en'),
}
function loadLocale (language) {
locales[language]().then(() => dayjs.locale(language))
}
Run Code Online (Sandbox Code Playgroud)
小智 6
您可以使用 import 作为导入表达式并动态导入您想要的任何内容。例如:
import dayjs from "dayjs";
import localeData from "dayjs/plugin/localeData";
dayjs.extend(localeData);
const LOCALE = "de";
import(`dayjs/locale/${LOCALE}`)
.then(() => {
dayjs.locale(LOCALE);
console.log(dayjs.weekdays());
});
Run Code Online (Sandbox Code Playgroud)
您可以在此codesandbox中看到一个工作示例。
有关动态导入的更多信息,我建议您阅读https://javascript.info/modules-dynamic-imports
您需要首先导入所需的语言环境文件,如下所示
import 'dayjs/locale/te'
import 'dayjs/locale/en'
Run Code Online (Sandbox Code Playgroud)
然后您可以按照以下操作在本地之间动态切换
dayjs().locale('en').format()
dayjs('2018-4-28', { locale: 'te' })
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14362 次 |
| 最近记录: |