是否可以使用next-translate处理复合布局(getLayout)?

vs3odd8k  于 2023-03-08  发布在  其他
关注(0)|答案(1)|浏览(105)

我尝试将布局像复合组件一样传递给组件,在用另一个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 器组件,它起作用了,但这不是我所期望的。

gmxoilav

gmxoilav1#

经过一段时间的调试和寻找解决方案,我发现这个解决方案从github的问题,它适合这种情况。幸运的是,为next-translate他们提供了staticHoc配置,以传递hoist-non-react-static。它用来复制静态从组件并将其传递到next-translate Package 器,所以现在复合布局开始再次工作。感谢carlosriveroib和aralroca的回答和问题张贴。
https://github.com/aralroca/next-translate/issues/717#issuecomment-957315046

相关问题