2

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

我从带有 FormattedMessage 的语言包中获取此号码
<ClickableNumber num={<FormattedMessage id="native_number" />} />

num当我在里面进行控制台登录时,ClickableNumber它是一个对象。

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

如果我使用了,我可以获得该值,intl.formatMessage({ id: 'native_number' })但我正在尝试重用ClickableNumber并且不想将使用此组件的每个组件包装在injectIntl

4

1 回答 1

0

我从未使用过 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.
于 2017-10-02T17:06:45.160 回答