消息必须是静态可评估的,以便在类上提取

时间:2019-04-08 09:30:20

标签: reactjs react-intl

我需要在React类的方法上添加formattedMessages。

我们通常在HOC上使用injectIntl​​,它可以工作,但是我在React类上,我已经尝试了很多东西,但仍然收到错误:

Messages must be statically evaluate-able for extraction

如何在类中使用formattedMessage?

  getDisplayText() {
    const { placeholder, value } = this.props;

    if (!value || value.length === 0) {
      return <div>{placeholder}</div>;
    }

    const messages = defineMessages({
      locations: {
        id: value.length > 1 ? 'SelectInputGrouped.locationsSelected' : 'SelectInputGrouped.oneLocationSelected',
        defaultMessage: '{num} location selected',
        values: { num: value.length },
      },
    });

    return (
      <div>
        <FormattedMessage {...messages.locations} />
      </div>
    );
  }

1 个答案:

答案 0 :(得分:0)

我的操作方式是使用i18n本身。它支持plurlas:https://www.i18next.com/translation-function/plurals