Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

258
Vistas
Next.js "no se encontró ninguna instancia de enrutador" en el enlace de autenticación HOC

Estoy tratando de crear un enlace de autenticación del lado del servidor en Next.js

withAuth.tsx

 import React from "react"; import { NextRouter, withRouter } from "next/router"; import { AuthContext } from "../contexts/AuthContext"; interface Options { requiresAuth: boolean; redirectsTo: string; } interface WithRouterProps { router: NextRouter; } interface WithAuthProps extends WithRouterProps {} const withAuth = ( Component: Function, options: Partial<Options> = { requiresAuth: true, redirectsTo: "/something", } ) => { class WithAuth extends React.Component<WithAuthProps> { user = this.context.user; static contextType = AuthContext; render() { if (!this.user) { if (options.requiresAuth) { return this.props.router.push(options.redirectsTo!!); } else return <Component />; } else { if (options.requiresAuth) return <Component />; else return this.props.router.push(options.redirectsTo!!); } } } return withRouter(WithAuth); }; export default withAuth;

index.tsx

 import type { NextPage } from "next"; import withAuth from "../hooks/withAuth"; const Home: NextPage = () => { return <div>Index</div>; }; export default withAuth(Home);

Y el mensaje de error completo que recibo:

 Error: No router instance found. you should only use "next/router" inside the client side of your app. https://nextjs.org/docs/messages/no-router-instance

De la documentación de Next.js:

Durante la representación previa (SSR o SSG), intentó acceder a un método de enrutador empujar, reemplazar, retroceder, que no es compatible.

En un Componente de clase, mueva cualquier llamada a los métodos de enrutador al método de ciclo de vida del componentDidMount .

Sospecho que el segundo punto es de donde viene mi problema. Pero la cuestión es que necesito empujar el enrutador desde la función de render . Hay alguna solución para esto. Gracias.

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda