Наследование компонента приложения Nextjs (pages/_app.js) в ReasonReact
Я пытаюсь реализовать React Context API в своем приложении Nextjs, используя ReasonReact, но меня догоняет способ компилятора Bucklescript, выводящий имена модулей.
Чтобы сделать контекст доступным для всего дерева, мне нужно наследовать от компонента приложения Nextjs. Проблема в том, что Next выглядит условно для pages/_app.js
для наследования компонентов приложения, но когда я использую _app.re
для имени файла, bsb
не создает модуль Reason с именем "App".
По факту, 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 ответ
Одним из возможных решений является добавление файла js с соответствующим именем, который реэкспортируется из скомпилированного модуля с именем, которое поддерживает BuckleScript:
// _app.js
export { default } from './next_app.bs.js';
Я должен был сделать это, чтобы некоторые функции работали с Гэтсби. Смотрите этот пример.