是否有可能使用React-intl作为变量?
问题描述:
我正在使用react-intl
和react-helmet
!我试图将元描述传递给头盔作为翻译文本,但似乎这是不可能的!是否有可能使用React-intl作为变量?
这里是我做的:
<Helmet
meta={[{ name: 'description', content: { id: 'homepage.description'} }]}
link={[{ rel: 'icon', href: 'favicon/favicon-32x32.png' }]}
/>
的homepage.description
是lang/en/en.json
文本。
我想如果翻译可以抓住并用作可变它可以很容易使用,我会做到这一点,就像这样:
render() {
const description = formatMessage({ id: 'homepage.description', values: {country: 'Morocco'} });
return (
<Helmet
title={pageTitle}
meta={[{ name: 'description', content: {{description}} }]}
link={[{ rel: 'icon', href: 'favicon/favicon-32x32.png' }]}
/>
);
}
如果这甚至可能吗?或者确实存在这种或最佳做法的替代方案吗?
在此先感谢
答
是的,这是可能的,如果你使用injectIntl,这样你可以得到一个翻译的字符串,并在需要时使用:
import {injectIntl} from 'react-intl';
...
render() {
const intl = this.props.intl;
const description = intl.formatMessage({ id: 'homepage.description', values: {country: 'Morocco'} });
return (
<Helmet
title={pageTitle}
meta={[{ name: 'description', content: {{description}} }]}
link={[{ rel: 'icon', href: 'favicon/favicon-32x32.png' }]}
/>
);
}
...
export default injectIntl(YourComponent);
它工作正常:+1 –