【发布时间】:2017-12-03 14:24:51
【问题描述】:
我正在尝试使用react-intl 进行语言翻译。当我使用这个<FormattedMessage id='importantNews' /> 时,它运行良好。但是当我将以下代码与intl.formatMessage() 一起使用时,它无法正常工作并引发一些错误。我不知道它有什么问题。
import { injectIntl, FormattedMessage } from 'react-intl';
function HelloWorld(props) {
const { intl } = props;
const x = intl.formatMessage('hello') + ' ' + intl.formatMessage('world'); //not working
const y = <FormattedMessage id='hello' />; //working
return (
<button>{x}</button>
);
}
export default injectIntl(HelloWorld);
我的根组件是这样的,
import ReactDOM from 'react-dom';
import { addLocaleData, IntlProvider } from 'react-intl';
import enLocaleData from 'react-intl/locale-data/en';
import taLocaleData from 'react-intl/locale-data/ta';
import HelloWorld from './hello-world';
addLocaleData([
...enLocaleData,
...taLocaleData
]);
const messages = {
en: {
hello: 'Hello',
world: 'World'
},
ta: {
hello: 'வணக்கம்',
world: 'உலகம்'
}
};
ReactDOM.render(
<IntlProvider key={'en'} locale={'en'} messages={messages['en']}>
<HelloWorld />
</IntlProvider>,
document.getElementById('root')
);
有人可以帮我解决这个问题吗?提前致谢。
【问题讨论】:
-
检查 props 是否正确通过。
-
我希望我正确传递道具。你能告诉我你说的是什么道具吗?
-
国际道具。你能解释一下你遇到了什么错误吗?
-
我不知道国际道具。但我收到此错误
Uncaught Error: [React Intl] An 'id' must be provided to format a message. -
你是塔米赞人吗?我是塔米赞人。我不知道。我会参考并分享我的知识。
标签: reactjs redux react-redux react-intl babel-plugin-react-intl