es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

importar un solo método getServerSideProps a múltiples páginas en Next.js

Estoy intentando importar el método getServerSideProps de esta página a otra y usarlo en varias páginas. ¿Cómo puedo hacer eso?

Aquí está mi código:

import DashboardLayout from "@app/layout/DashboardLayout";
import Overview from "@containers/dashboard/Overview";
import { parsedCookie } from "@infrastructure/utils/functions";

const OverviewPage = () => {
  return (
    <dashboardlayout>
      <overview></overview>
    </dashboardlayout>
  );
};

export default OverviewPage;

export const getServerSideProps = async (context) => {
  const token = parsedCookie(context.req);
  const { accessToken, refreshToken } = token;
  if (!accessToken || !refreshToken) {
    return {
      redirect: {
        destination: "/",
        permanent: false,
      },
    };
  }

  return {
    props: {},
  };
};
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para importar el método getServerSideProps de esta página y utilizarlo en múltiples páginas, puedes exportarlo por separado del componente:

    export async function getServerSideProps(context) {
      const token = parsedCookie(context.req);
      const { accessToken, refreshToken } = token;
      if (!accessToken || !refreshToken) {
        return {
          redirect: {
            destination: "/",
            permanent: false,
          },
        };
      }
    
      return {
        props: {},
      };
    }
    
    import DashboardLayout from "@app/layout/DashboardLayout";
    import Overview from "@containers/dashboard/Overview";
    import { parsedCookie } from "@infrastructure/utils/functions";
    
    const OverviewPage = () => {
      return (
        <dashboardlayout>
          <overview></overview>
        </dashboardlayout>
      );
    };
    
    export default OverviewPage;
    

    Luego, en cualquier otro componente de página en el que desees usar este método, simplemente puedes importarlo:

    import { getServerSideProps } from "path/to/this/page";
    
    const OtherPage = () => {
      return (
        // ...
      );
    };
    
    export { getServerSideProps };
    export default OtherPage;
    

    Ten en cuenta que necesitas exportar el método por separado y también exportarlo como parte del módulo para que otras páginas que importen este componente puedan usarlo a través de la propiedad getServerSideProps.

Comments are closed.