首先 下载导入插件 react-intl
npm install react-intl@2 -S
注意: 在这里说下,网上搜了很多都没说下载2.x版本的,现在下载的是3.x的版本,结果被这个版本坑了好久,各种报错,大家下载的时候注意了
我是在路由页面开始的,用法跟redux差不多,需要用 IntlProvider 组件把根组件包裹起来
// IndexLayout.js
import {addLocaleData, IntlProvider} from 'react-intl';
import en from 'react-intl/locale-data/en';
import zh from 'react-intl/locale-data/zh';
import zh_CN from "@/locale/zh_CN"; //这个是本地自己建的语言文件
import en_US from "@/locale/en_US"; //这个是本地自己建的语言文件
addLocaleData([...en, ...zh]); // 引入多语言环境的数据
render() {
let messages = {};
messages['en'] = en_US;
messages['zh'] = zh_CN;
// 这里可以用组件的state,也可以用redux全局的,这里因为我是在其他组件里改变的,所以用的redux来控制
const language = this.props.public.language;
return (
<IntlProvider locale={language} m