[React Intl] Use a react-intl Higher Order Component to format messages

本文介绍如何利用react-intl的injectIntl高阶组件优化React应用中的字符串国际化处理过程,避免不必要的DOM元素创建,并简化props的传递。

In some cases, you might need to pass a string from your intl messages.js file as a prop to a component. Instead of using react-intl components (which generate markup), we’ll use the injectIntl higher order component provided by react-intl. This will provide just the string we’re looking for, make the prop simpler, and avoid creating unnecessary DOM elements.

We’ll also use props passed to the component from the Higher Order Component to clean up some redundant code.

 

import React from 'react';
import { injectIntl, FormattedMessage, FormattedHTMLMessage, FormattedRelative , FormattedTime, FormattedNumber } from 'react-intl';
import {meanBy, round, sortBy} from 'lodash';

import books from '../books.json';

const BookDetail = ({match, intl}) => {
  
  return (
    <div className="BookDetail">
     ....
      <textarea placeholder={intl.formatMessage({
        id: 'detail.inputPlaceholder'
      })} cols="30" rows="10"></textarea>
    </div>
  )
}

export default injectIntl(BookDetail);

 

转载于:https://www.cnblogs.com/Answer1215/p/7265695.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值