Сообщения должны быть статически оценены для извлечения в классе - PullRequest
0 голосов
/ 08 апреля 2019

Мне нужно добавить formattedMessages для метода класса React.

Обычно мы используем injectIntl ​​с HOC, и он работает, но я учусь в классе React, и я пробовал много вещей, но все равно получаю ошибку:

Messages must be statically evaluate-able for extraction

Как использовать отформатированное сообщение в классе?

  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 Ответ

1 голос
/ 09 апреля 2019

Я сделал это с самим i18n .. у него есть поддержка plurlas: https://www.i18next.com/translation-function/plurals

...