使用复杂消息语法plurar格式化消息

时间:2017-11-28 15:22:37

标签: reactjs ecmascript-6 react-intl formatjs

我尝试使用FormattedMesage(React intl)来使用格式化API。如何创建一个带复数的格式化消息? 现在:

var array = [["name1", 12.23423, 54.243, 6.23566, 5675.552], ["name2", 345.8655, 92.9316], ["name3", 99.56756, 52.988, 3.09889]],
    result = array.map(a => a.map((v, i) => i ? +v.toFixed(2) : v));

console.log(result);

预期使用Message语法

const outputTimeOutValues = [
        {value:'00:00:01', translationId:'passage.outputTimeOut.oneSecond'},
        {value: '00:00:03', translationId:'passage.outputTimeOut.threeSeconds'},
        {value: '00:00:05', translationId: 'passage.outputTimeOut.fiveSeconds'},
        {value: '00:00:10', translationId: 'passage.outputTimeOut.tenSeconds'},
        {value: '00:00:15', translationId: 'passage.outputTimeOut.fifteenSeconds'},
        {value: '00:00:30', translationId: 'passage.outputTimeOut.thirtySeconds'}]

    const renderMenuItems = values => values.map(({value ,translationId}) =>
        <MenuItem value={value} primaryText={<FormattedMessage id={translationId} />}/>)

预期文字:1秒,2秒,依此类推。

1 个答案:

答案 0 :(得分:0)

使用injectIntl将intl类作为prop添加到组件中。 然后,您可以在邮件上调用intl.formatMessage(),然后将primaryText道具插入MenuItem组件。