在 class 上,消息必须可以静态评估以进行提取

Messages must be statically evaluate-able for extraction, on class

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

我们通常将 injectIntl​​ 与 HOC 一起使用并且它可以工作,但我正在使用 React class,我已经尝试了很多方法但仍然出现错误:

Messages must be statically evaluate-able for extraction

如何在 class 中使用格式化消息?

  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>
    );
  }

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