2017-05-30 40 views
0

我正在使用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' }]} 
      /> 
    ); 
} 

如果這甚至可能嗎?或者確實存在這種或最佳做法的替代方案嗎?

在此先感謝

回答

1

是的,這是可能的,如果你使用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 –

相關問題