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

239
Vistas
Error de React Hooks: los ganchos solo se pueden llamar dentro del cuerpo de un componente de función

Recibo este error cuando uso el useState . Tengo esto en su forma básica, mirando los documentos de reacción para obtener una referencia, pero sigo recibiendo este error. Estoy listo para el momento de la palma de la mano...

 export function Header() { const [count, setCount] = useState(0) return <span>header</span> }
over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Actualizado: 2018-diciembre

Ya está disponible la nueva versión de react-hot-loader , enlace . Hooks ahora está trabajando fuera de la caja. Gracias al autor, theKashey.

Echa un vistazo a este modelo https://github.com/ReeganExE/react-hooks-boilerplate

  • Ganchos de reacción
  • Reaccionar cargador caliente
  • Webpack, Babel, ESLint Airbnb

Respuesta anterior:

Primero, asegúrese de haber instalado react@next y react-dom@next .

Luego verifique si está usando react-hot-loader o no.

En mi caso, deshabilite el cargador en caliente y HMR podría hacer que funcione.

Consulte https://github.com/gaearon/react-hot-loader/issues/1088 .

citado:

Sí. RHL es 100% no compatible con anzuelos. Solo hay algunas razones detrás de esto:

SFC se están convirtiendo en componentes de clase. Hay una razón: poder forzar la actualización en HMR, siempre que no haya un método de "actualización" en SFC. Estoy buscando otra forma de forzar la actualización (como esta. Entonces RHL está matando a SFC.

"procesamiento de reemplazo en caliente". RHL está tratando de hacer el trabajo de React y renderizar la aplicación antigua y la nueva para fusionarlas. Entonces, obviamente, eso está roto ahora.

Voy a redactar un PR, para mitigar ambos problemas. Funcionará, pero no hoy.

Hay una solución más adecuada, que funcionaría: API fría

Puede deshabilitar RHL para cualquier tipo personalizado.

 import { cold } from 'react-hot-loader'; cold(MyComponent);

Busque "useState/useEffect" dentro del código fuente del componente y "frío".

Actualizado:

Según la actualización del mantenedor de react-hot-loader, puede probar react-hot-loader@next y establecer la configuración de la siguiente manera:

 import { setConfig } from 'react-hot-loader'; setConfig({ // set this flag to support SFC if patch is not landed pureSFC: true });

Gracias a @loganfromlogan por la actualización.

over 4 years ago · Santiago Trujillo Denunciar

0

Mi problema fue olvidar actualizar el módulo react-dom . Ver problema .

over 4 years ago · Santiago Trujillo Denunciar

0

Tenía el mismo problema. Mi problema estaba relacionado con React Router. accidentalmente había usado

 <Route render={ComponentUsingHooks} />

en vez de

 <Route component={ComponentUsingHooks} />
over 4 years ago · Santiago Trujillo Denunciar
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