【问题标题】:react Intl - how to get value from formattedMessagereact Intl - 如何从 formattedMessage 中获取值
【发布时间】:2018-03-13 18:52:58
【问题描述】:

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

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

当我在ClickableNumber 中控制台记录num 时,它是一个对象。

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

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

【问题讨论】:

标签: reactjs react-native react-intl


【解决方案1】:

我从未使用过 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.

【讨论】:

    猜你喜欢
    • 2021-12-06
    • 2017-01-30
    • 2019-02-24
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 1970-01-01
    相关资源
    最近更新 更多