我有这样的文件夹 struct :

/
 |- ...
 |- pages
     |- info
     |   |- main.tsx
     |- extra
         |- main.tsx

/info/main路由和/extra/main路由都呈现相同的内容,包括getServerSideProps.我的问题是如何在其中一个中实现逻辑,并在另一个中重用它,这样代码就不会重复.我试了extra/main.tsx次:

import MainCmp from '../info/main';
export default MainCmp;

它可以工作,但不能执行getServerSideProps次.还try 了rewrites:

module.exports = {
  async rewrites() {
    return [
      {
        source: '/extra/main',
        destination: '/info/main',
      },
    ]
  },
}

并再次工作,但然后URL是/info/main,而不是/extra/main时加载一些额外的…

有什么关于如何解决这个问题的提示吗?

推荐答案

Next.js期望在呈现之前调用默认导出(用于呈现页面)和命名的getServerSideProps导出.您可以这样做:

//extra/main.tsx

import MainCmp from '../info/main';
export { getServerSideProps }  from '../info/main';
export default MainCmp;

您还可以使用一个帮助器函数,供每个页面的getServerSideProps个组件调用,以及一个组件,该组件获取数据并显示数据,供每个页面组件调用.

Reactjs相关问答推荐

如何将Redux工具包添加到expo (SDK 50)项目?

使用Overpass API Endpoint计算 map 上的面积

如何在单击行中的图标时避免选中ionic 复选框?

有没有一种方法可以在没有强烈动画的情况下有条件地渲染组件?

在REACT-RUTER-DOMV6中使用通用页面包装组件有问题吗?

React useContext 的未定义返回值

react :输入失go 焦点,输入一个字符,

在 golang 服务器中刷新或直接 url 路径时响应 404

在MongoDB中,如何获取最后N条记录中字段不为空或不为空字符串的数据

React中useAuthenticator的authState在成功登录后仍保持未认证状态 - 需要强制刷新

计数器递增 2 而不是 1

当我在 React Router Dom 中使用两个参数并直接在页面上导航时,数据获取没有发生

React Native应用如何订阅Supabase的实时数据?

改变输入的默认值时出现问题:number react-hook-form

使用状态与复选框不同步

react-router v6 中的 BrowserRouter 和 createBrowserRouter 有什么区别?我可以在不使用数据 API 的情况下使用 createBrowserRouter 吗?

为嵌套路由配置一个不存在的 url 的重定向

如何在react 中正确销毁上下文?

React + i18next + Trans + Prettier:Prettier 最终会在重新格式化 JSX 时 destruct 翻译

React Router 6.4CreateBrowserRouter子元素不显示