在ReasonReact中继承Nextjs App组件(pages / _app.js)

时间:2019-02-26 23:33:43

标签: reactjs next.js react-context reason-react bsb

我正在尝试使用ReasonReact在我的Nextjs应用程序中实现React Context API,但被扣脚本编译器推断模块名称的方式所吸引。

要使上下文可用于整个树,我需要从Nextjs App组件继承。问题在于,Next会按惯例查找pages/_app.js以实现App组件继承,但是当我使用_app.re来命名文件名时,bsb不会产生一个名为“ App”的Reason模块。 / p>

实际上,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 :(得分:3)

一种可能的解决方案是添加一个具有适当名称的js文件,该文件将从BuckleScript确实支持的名称的已编译模块中重新导出:

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

我必须这样做才能使某些功能与Gatsby一起使用。参见this example