Наследование компонента приложения Nextjs (pages / _app.js) в ReasonReact - PullRequest
0 голосов
/ 27 февраля 2019

Я пытаюсь реализовать React Context API в своем приложении Nextjs, используя ReasonReact, но меня настигает способ компилятора bucklescript, позволяющий выводить имена модулей.

Чтобы сделать контекст доступным для всего дерева, мне нужнонаследовать от компонента приложения Nextjs.Проблема в том, что Next по соглашению ищет pages/_app.js для наследования компонентов приложения, но когда я использую _app.re для имени файла, bsb не создает модуль Reason с именем "App".

InНа самом деле, bsb печатает следующее сообщение и игнорирует файл:

IGNORED: file _app.re under pages is ignored because it can't be turned into a valid module name. The build system transforms a file name into a module name by upper-casing the first letter

Есть ли какой-нибудь способ сказать Nextjs искать в другом месте компонент App?Или, может быть, способ настроить bsb только для этого одного файла?

Этот последний кажется длинным выстрелом, но я не хочу углубляться в JavaScript, если я действительно не должен.

1 Ответ

0 голосов
/ 27 февраля 2019

Одним из возможных решений является добавление файла js с соответствующим именем, которое реэкспортируется из скомпилированного модуля с именем, которое поддерживает BuckleScript:

// _app.js
export { default } from './next_app.bs.js';

Мне пришлось сделать это, чтобы получить определенные функцииработаю с Гэтсби.См. этот пример .

...