Estoy usando reactjs.
Cuando ejecuto el código debajo del navegador dice:
TypeError no capturado: la súper expresión debe ser nula o una función, no indefinida
Cualquier sugerencia sobre lo que está mal sería apreciada.
Primero, la línea utilizada para compilar el código:
browserify -t reactify -t babelify examples/temp.jsx -o examples/public/app.js
Y el codigo:
var React = require('react');
class HelloMessage extends React.Component {
render() {
return <div>Hello </div>;
}
}
ACTUALIZACIÓN: Después de quemarme en el fuego del infierno durante tres días con este problema, descubrí que no estaba usando la última versión de react.
Instalar globalmente:
sudo npm install -g react@0.13.2
instalar localmente:
npm install react@0.13.2
asegúrese de que el navegador también esté usando la versión correcta:
<script type="text/javascript" src="react-0.13.2.js"></script>
Espero que esto salve a alguien más tres días de vida preciosa.
reactjs
ecmascript-6
Duque dugal
fuente
fuente
extends React.component
(minúsculasc
).Components
lugar deComponent
:). Su comentario ayudó BTWRespuestas:
Nombres de clase
En primer lugar, si está seguro de que se está extendiendo desde la clase correctamente nombrada, por ejemplo , React.Component , no React.component o React.createComponent, es posible que deba actualizar su versión React. Vea las respuestas a continuación para obtener más información sobre las clases para ampliar.
Actualizar Reaccionar
React solo ha admitido clases de estilo ES6 desde la versión 0.13.0 (consulte su publicación de blog oficial en la introducción de soporte aquí .
Antes de eso, cuando se usa:
intentaba usar palabras clave de ES6 (
extends
) para subclasificar de una clase que no se definió con ES6class
. Probablemente por esto te encontrabas con un comportamiento extraño consuper
definiciones, etc.Entonces, sí, TL; DR : actualizar a React v0.13.x.
Dependencias circulares
Esto también puede ocurrir si tiene una estructura de importación circular. Un módulo importa otro y viceversa. En este caso, solo necesita refactorizar su código para evitarlo. Más información
fuente
React.component
lugar deReact.Component
extends
. Prueba estovar x = function(){}; class y extends x {}
class App extends React.Component () {...}
- que debería corregirse aclass App extends React.Component {...}
(sin()
el final)Esto significa que desea subclase algo, que debería ser
Class
, pero esundefined
. Las razones pueden ser:Class extends ...
, por lo que extiende la variable indefinidaimport ... from
, por lo que importaundefined
desde el móduloundefined
)export ...
declaración del módulo referenciado , por lo que exporta una variable indefinidaexport
declaración faltante del módulo referenciado en absoluto, por lo que exporta soloundefined
fuente
import {Foo} from 'bar'
lugar deimport Foo from 'bar'
. Upvoted por lo tanto.class Thing extends React.Component() {
- Tuve que eliminar el()
También puede ser causada por un error tipográfico, por lo que, en lugar de utilizar
Component
C mayúscula, tienecomponent
una C inferior, por ejemplo:Nota: La fuente de este error puede deberse a que existe
React
y creemos que automáticamente lo que viene a continuación debería ser un método o propiedad de reacción que comience con una letra minúscula, pero de hecho es otra Clase (Component
) que debería comenzar con una letra mayúscula .fuente
En mi caso, con react-native, el error fue que tuve
en vez de
fuente
Experimenté esto cuando me faltaba una declaración de exportación para la clase JSX.
Por ejemplo:
fuente
También puede recibir esto si está intentando ejecutar
React.Component
con una()
definición errónea en su clase.Lo que a veces logro hacer cuando estoy convirtiendo de un componente funcional sin estado a una clase.
fuente
He visto este error cuando tienes una dependencia circular.
fuente
Para cualquier otra persona, eso puede desarrollar este problema. También puede verificar que el
component
método enReact.Component
esté en mayúscula. Tuve el mismo problema y lo que lo causó fue que escribí:Lo cambié a
y todo funcionó bien
fuente
Obtuve esto cuando tuve un error tipográfico en mi importación:
fuente
Verifique que las clases que extienda realmente existan, pocos métodos de reacción se deprecian, también podría ser un error tipográfico en
'React.Components'
lugar de'React.Component'
¡¡Buena suerte!!
fuente
React.component
lugar deReact.Component
(observe la "C" mayúscula que me faltaba)Voy a aportar otra posible solución, una que funcionó para mí. Estaba usando el índice de conveniencia para recopilar todos los componentes en un archivo.
No creo que al momento de escribir esto sea respaldado oficialmente por Babel, y le da un giro mecanografiado, sin embargo, lo he visto utilizado en muchos proyectos y definitivamente es conveniente.
Sin embargo, cuando se usa en combinación con la herencia, parece arrojar el error presentado en la pregunta anterior.
Una solución simple es que los módulos que actúan como padres deben importarse directamente en lugar de a través de un archivo de índice de conveniencia.
./src/components/index.js
./src/components/com-1/Com1.js
./src/components/com-3/Com3.js
./src/components/com-3/Com3.js
fuente
Esto funcionó para mí:
fuente
Webpack 4 Trozos y Hashes con Uglificación por TerserPlugin
Esto puede ocurrir cuando Webpack usa fragmentos y hashes con minificación y unglification a través de TerserPlugin (actualmente en la versión 1.2.3). En mi caso, el error se redujo a la uglificación por el Terser Plugin de mi
vendors.[contenthash].js
paquete que contiene minode_modules
. Todo funcionaba cuando no se usaban hashes.La solución fue excluir el paquete en las opciones de uglification:
Más información
fuente
Tengo el mismo problema, solo cambio de
Navigator
a{Navigator}
fuente
export Foo ... import { Foo }
- o -export default Foo ... import Foo
No es correcto para esta respuesta, pero para otros con el mismo error, mi error ridículamente tonto podría ayudar.
Estúpidamente, mi problema era usar la notación de función al incluir () después del nombre de la clase .
Asegúrese de que su sintaxis sea correcta. Y ha importado y exportado cualquier componente / módulo externo con los nombres y rutas correctos.
Esta plantilla debería funcionar bien si tiene instalada una versión más reciente de react:
fuente
Mis condiciones
Solución a mi problema
Bajar de categoría a Froala a v3.0
Algo en v3.1 rompió nuestro proceso de creación de la aplicación Create React.
Actualización: Utilice los scripts de reacción v3.3
Descubrimos que había un problema entre React Scripts 3.2 y Froala 3.1.
La actualización a React Scripts v3.3 nos permitió actualizar a Froala 3.1.
fuente
He escrito
en lugar de
React.Component
Ese fue mi problema)) y estuve buscando esto por más de media hora.fuente
En mi caso estaba usando:
que estaba mal pero correcto es:
también asegúrese de que hay
√
React.Component
NO
ˣ
React.component
oReact.Components
fuente
Puede haber un paquete de terceros causando esto. En nuestro caso fue reaccionar-deslumbrar . Tenemos configuraciones similares a las de @steine ( vea esta respuesta más arriba ).
Para encontrar el paquete problemático, ejecuté la compilación del paquete web localmente con el modo de producción y, por lo tanto, pude encontrar el paquete problemático en el seguimiento de la pila. Entonces, para nosotros, esto proporcionó la solución y pude mantener la uglificación.
fuente
Usando Babel (5.8) obtengo el mismo error si trato de usar la expresión
export default
en combinación con alguna otraexport
:fuente
Aquí hay una respuesta:
fuente
En mi caso, arreglé este error cambiando
export default class yourComponent extends React.Component() {}
aexport default class yourComponent extends React.Component {}
. Sí, eliminar el paréntesis()
solucionó el error.fuente
Experimenté este error al importar componentes como:
en vez de
fuente
Mire si tiene un error tipográfico en su importación o en su generación de clase, podría ser simplemente eso.
fuente
Cambie
import React from 'react-dom
aimport React, {Component} from 'react'
Y cambie
class Classname extends React.Component
aclass Classname extends Component
Si está utilizando la última versión de React (16.8.6 a partir de ahora) .
fuente
Si está recibiendo este error y está usando Browserify y browserify-shim (como en una tarea de Grunt), es posible que haya experimentado un momento tonto como lo hice yo donde involuntariamente le dijo
browserify-shim
que tratara a React como parte del espacio de nombres global (por ejemplo, cargado desde un CDN).Si desea que Browserify incluya React como parte de la transformación, y no un archivo separado, asegúrese de que la línea
"react": "global:React"
no aparezca en la"browserify-shim"
sección de supackages.json
archivo.fuente
Uncaught Error: Cannot find module 'react'
después de eliminar la configuración browserify-shim? Básicamente quiero seguir reaccionando como una dependencia externa, pero browserify parece no entender cómo construir el paquete y mantener React externo. Esto puede o no ser porque el módulo que estoy incluyendo en mi punto de entrada de navegador ha reaccionado como una dependencia.Esto también puede suceder si lo hubiera usado en
require
lugar deimport
dentro de su código.fuente
Me pasó a mí también cuando usé esto:
En lugar del correcto:
Aviso: - () en el primero, que es la causa principal de este problema
fuente
Para aquellos que usan
react-native
:puede producir este error
Mientras que la referencia
react
directa es la forma más estable de hacerlo:fuente
En mi caso, fue React.Element change a React.Component lo que solucionó este error.
fuente