Dva: 如何在 dva 中通过 react-intl 支持国际化?

Created on 25 Jul 2016  ·  8Comments  ·  Source: dvajs/dva

这个好像不难,在provider外面包下,然后做些polyfill的工作就好

faq question

Most helpful comment

just a small remark of above code:
htmlElement = document.GetElementById('root');

To use antd LocaleProvider:

...
import { LocaleProvider } from 'antd';

import enUS from 'antd/lib/locale-provider/en_US';

import ReactDOM from 'react-dom';
...
const App = app.start();

ReactDOM.render(<LocaleProvider locale={enUS}><App /></LocaleProvider>, 
document.getElementById('root'));

All 8 comments

现在就可以和 react-intl 配合使用,因为 app.start() 返回的是一个 React Component,可以给他外面套一层 IntlProvider,然后给 ReactDOM 渲染。

比如:

import { IntlProvider } from 'react-intl';
import ReactDOM from 'react-dom';
import dva from 'dva';

const app = dva();
app.model();
app.router();

const App = app.start();
ReactDOM.render(<IntlProvider><App /></IntlProvider>, htmlElement);

真是棒极了

just a small remark of above code:
htmlElement = document.GetElementById('root');

To use antd LocaleProvider:

...
import { LocaleProvider } from 'antd';

import enUS from 'antd/lib/locale-provider/en_US';

import ReactDOM from 'react-dom';
...
const App = app.start();

ReactDOM.render(<LocaleProvider locale={enUS}><App /></LocaleProvider>, 
document.getElementById('root'));

这样的话,浏览器其它地方国际化了,但是title标签还是没有国际化,有什么办法统一处理

这样处理了之后 会导致 App 下挂的组件 不能进行热加载 。。。。。

现在就可以和 react-intl 配合使用,因为 app.start() 返回的是一个 React Component,可以给他外面套一层 IntlProvider,然后给 ReactDOM 渲染。

比如:

import { IntlProvider } from 'react-intl';
import ReactDOM from 'react-dom';
import dva from 'dva';

const app = dva();
app.model();
app.router();

const App = app.start();
ReactDOM.render(<IntlProvider><App /></IntlProvider>, htmlElement);

这样是可以将语言传到子组件了,但是切换语言的操作这里怎么感知呢,我的切换操作是在header组件中进行的

现在就可以和 react-intl 配合使用,因为 app.start() 返回的是一个 React Component,可以给他外面套一层 IntlProvider,然后给 ReactDOM 渲染。
比如:

import { IntlProvider } from 'react-intl';
import ReactDOM from 'react-dom';
import dva from 'dva';

const app = dva();
app.model();
app.router();

const App = app.start();
ReactDOM.render(<IntlProvider><App /></IntlProvider>, htmlElement);

这样是可以将语言传到子组件了,但是切换语言的操作这里怎么感知呢,我的切换操作是在header组件中进行的

同问如何切换语言,老哥找到方案了吗

Was this page helpful?
0 / 5 - 0 ratings