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> } 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
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".
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.
Mi problema fue olvidar actualizar el módulo react-dom . Ver problema .
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} />