реакции-intl FormattedMessage не обновляется после регистрации reduxForm - PullRequest
0 голосов
/ 24 апреля 2018

После регистрации компонента с помощью reduxForm, react-intl FormattedMessages не обновляются после изменения локали в состоянии:

import React from 'react';
import { reduxForm } from 'react-redux-form';
import { Form } from 'reactstrap';
import { FormattedMessage } from 'react-intl';

const ExampleForm = ({ handleSubmit }) => (
  <Form onSubmit={handleSubmit}>
    <h2>
      <FormattedMessage id="example.title" />
    </h2>
    ...
  </Form>
);

// When added reduxForm FormattedMessages are not displaying
// correct translation after language locale change through reducer
export default reduxForm({
  form: 'example',
})(ExampleForm);

// If I I am using without reduxForm everything works correctly
// export default ExampleForm;

У кого-нибудь есть опыт с этим? Для меня они обновляются только тогда, когда я покидаю маршрут и возвращаюсь или просто обновляю страницу, конечно, когда я записываю свою локаль в localStorage в действиях и читаю ее в магазине при инициализации.

Версии Lib:

"react": "^16.3.2",
"redux": "^4.0.0",
"react-redux": "^5.0.7",
"redux-form": "^7.3.0",
"react-intl": "^2.4.0",
"react-intl-redux": "^0.7.0",

1 Ответ

0 голосов
/ 24 апреля 2018

injectIntl требуется для упаковки reduxForm:

import { FormattedMessage, injectIntl } from 'react-intl';

export default injectIntl(reduxForm({
  form: 'example',
})(ExampleForm));
...