是否有可能使用React-intl作为变量?

问题描述:

我正在使用react-intlreact-helmet!我试图将元描述传递给头盔作为翻译文本,但似乎这是不可能的!是否有可能使用React-intl作为变量?

这里是我做的:

<Helmet 
    meta={[{ name: 'description', content: { id: 'homepage.description'} }]} 
    link={[{ rel: 'icon', href: 'favicon/favicon-32x32.png' }]} 
/> 

homepage.descriptionlang/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); 
+0

它工作正常:+1 –