繁体   English   中英

react Intl-如何从formattedMessage获取值

[英]react Intl - how to get value from formattedMessage

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

我从我的语言包中收到一个带有FormattedMessage的数字
<ClickableNumber num={<FormattedMessage id="native_number" />} />

当我安慰日志numClickableNumber它是一个对象。

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

如果使用intl.formatMessage({ id: 'native_number' })则可以获取该值,但是我试图重用ClickableNumber并且不想在injectIntl包装使用该组件的每个组件

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

您可以做的是创建一个实用程序函数,该函数将返回所需的结果。 对于这种情况,请使用intl.formatMessage({ id: 'native_number' })和格式化的Component。

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.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM