反应Intl - 如何从formattedMessage获取值

时间:2017-10-02 16:44:32

标签: reactjs react-native react-intl

我有一个带数字的组件。 <ClickableNumber num={num} />

我从我的语言包中获取了带有FormattedMessage的数字  <ClickableNumber num={<FormattedMessage id="native_number" />} />

当我在num内控制日志ClickableNumber时,它是一个对象。

如何从<FormattedMessage id="native_number" />获取值的字符串或数字版本?

如果我使用intl.formatMessage({ id: 'native_number' }),我可以获取该值,但我正在尝试重用ClickableNumber,并且不希望在injectIntl

1 个答案:

答案 0 :(得分:0)

我从来没有使用过react-intl所以我不知道它是否会起作用,但它应该在概念上有效。

您可以做的是创建一个返回所需结果的效用函数。对于这种情况intl.formatMessage({ id: 'native_number' })和格式化的组件。

const getNativeNumber = () => {
   // I don't know how but you can get the number here
   // something like
   const nativeNumber = intl.formatMessage({ id: 'native_number' });
   return {
     component: <FormattedMessage id="native_number" />,
     nativeNumber: nativeNumber
   }
}

<ClickableNumber num={getNativeNumber()} />

console.log(this.props.num.nativeNumber)  // This will have the native number in your ClickableNumber component.