我正在尝试在我的应用程序中添加一个 LocaleProvider 以将 antd 组件以英文(而不是默认的中文)。我按照https://ant.design/components/locale-provider/的以下说明进行操作:
import { LocaleProvider } from 'antd';
import enUS from 'antd/lib/locale-provider/en_US';
...
return <LocaleProvider locale={enUS}><App /></LocaleProvider>;
然而这不起作用:enUS
is undefined
. 我已经在我的 webpack 配置中将 Antd 库声明为外部库,因为我不想将整个 Antd 库捆绑在app.js
我<script>
的<head>
.
<script src="https://cdnjs.cloudflare.com/ajax/libs/antd/2.11.0/antd-with-locales.js"></script>
我的 Webpack 配置的相关部分:
externals: {
"react": "React",
"react-dom": "ReactDOM",
"antd": "antd"
}
当我尝试 LocaleProvider 文档中描述的第二种方法时:
const { LocaleProvider, locales } = window.antd;
...
return <LocaleProvider locale={locales.en_US}><App /></LocaleProvider>;
它有效,我的应用程序被翻译。但我不喜欢“导入样式”的混合。
所以,我的问题是:我做错了什么?为什么第一种方法不起作用?这是因为添加antd
到我的 webpack 配置的外部,如果是这样,我该如何解决这个问题?