我尝试将布局像复合组件一样传递给组件,在用另一个HOC Package 组件之后,我在项目中使用了next-translate。
// pages/test.tsx
function TestPage() {
const { t } = useTranslation();
return (
<>
My testing page with translation
</>
);
}
TestPage.pageLayout = MyLayout;
export default withOtherHoc(TestPage);
并在从_app.tsx接收中
// _app.tsx
function App({ Component, ...rest }) {
const Layout = Component.pageLayout
return (
<Layout>
<Component {...props.pageProps} />
</Layout>
)
}
过了一段时间,我发现next-translate用另一个Wrapper Package TestPage组件,这会导致复合布局无法检测到。
我尝试添加getStaticProps / getServerSideProps以通过next-translate绕过 Package 器组件,它起作用了,但这不是我所期望的。
1条答案
按热度按时间gmxoilav1#
经过一段时间的调试和寻找解决方案,我发现这个解决方案从github的问题,它适合这种情况。幸运的是,为next-translate他们提供了staticHoc配置,以传递hoist-non-react-static。它用来复制静态从组件并将其传递到next-translate Package 器,所以现在复合布局开始再次工作。感谢carlosriveroib和aralroca的回答和问题张贴。
https://github.com/aralroca/next-translate/issues/717#issuecomment-957315046