Далее. js. Где поставить глобального провайдера? - PullRequest
0 голосов
/ 30 апреля 2020

Я работаю с Next. js и мне нужно реализовать i18n. Требуется добавить какого-то глобального провайдера, который должен обернуть все приложение. Кроме того, он должен получать обновления от некоторого управления состоянием (например, Redux), чтобы правильно перерисовать все приложение при изменении активного языка.

В стандартном приложении React у нас есть приложение. js, которое мы помещаем в индекс. js и сохраняем здесь все логики / провайдеры.

Но в случае с Next, я ' Я не уверен, где поставить этот лог c. Я дважды проверил их документацию, но не нашел никаких упоминаний об этом. Только около _app. js и _document. js, но на самом деле оба не имеют возможности подключиться к Redux, et c. На самом деле они не были предназначены для этого.

Мне просто любопытно, если Next предоставит какой-нибудь официальный способ сделать это или я должен просто вручную создать HO C в качестве приложения и обернуть все приложение самостоятельно ?

Кстати. Я едва понимаю разницу между _app и _document . Так что я буду признателен за любые разъяснения!

Ответы [ 2 ]

0 голосов
/ 01 мая 2020

Пожалуйста, прочитайте документацию более внимательно, вы можете найти Keeping state when navigating pages по второму пункту здесь . Для этого и используется редукс.

Я могу подключить все мое приложение к редуксу и i18n из файла _app.js. В моем предыдущем проекте мои товарищи по команде даже использовали файл _document.js для подключения i18n.

Как вы можете видеть из их do c, цель этого _app.js состоит в том, чтобы переопределить и контролировать инициализация страницы . Таким образом, вы можете получать обновления от redux и помещать эти изменения в IntlProvider непосредственно перед отображением вашей страницы.

Другое решение, подобное тому, что вы сказали, - создание HO C для переноса приложения.

Выбор за вами.

0 голосов
/ 30 апреля 2020

Вы можете использовать next-connect-redux пакет.

Github page Пример репо

...