Estoy tratando de usar ganchos de reacción para un problema simple
const [personState,setPersonState] = useState({ DefinedObject });
con las siguientes dependencias.
"dependencies": {
"react": "^16.8.6",
"react-dom": "^16.8.6",
"react-scripts": "3.0.0"
}
pero sigo recibiendo el siguiente error:
./src/App.js
Línea 7:
React Hook "useState" se llama en la función "aplicación" que no es un componente de la función React ni una función personalizada React Hook react-hooks / rules-of-hooksLínea 39:
'estado' no está definido
no-undefBusque las palabras clave para obtener más información sobre cada error.
El código del componente está abajo:
import React, {useState} from 'react';
import './App.css';
import Person from './Person/Person';
const app = props => {
const [personState, setPersonSate] = useState({ person:[ {name:'bishnu',age:'32'}, {name:'rasmi',age:'27'}, {name:'fretbox',age:'4'} ], });
return (
<div className="App">
<h2>This is react</h2>
<Person name={personState.person[1].name} age="27"></Person>
<Person name={personState.person[2].name} age="4"></Person>
</div> );
};
export default app;
Componente de persona
import React from 'react';
const person = props => {
return(
<div>
<h3>i am {props.name}</h3>
<p>i am {props.age} years old</p>
<p>{props.children}</p>
</div>
)
};
export default person;
reactjs
react-hooks
Bishnu
fuente
fuente
Respuestas:
Intenta capitalizar 'app' como
En React, los componentes deben ser capitalizados, y los ganchos personalizados deben comenzar con
use
.fuente
Checks if the node is a React component name. React component names must always start with a non-lowercase letter.
.Siento que estamos haciendo el mismo curso en Udemy.
Si es así, simplemente capitalice el
const app
A
const App
Haz tan bien como para el
A
Funciona bien para mi
fuente
Hasta donde yo sé, se incluye un linter en este paquete. Y requiere que tu componente comience con el carácter Capital. Compruébelo por favor.
Sin embargo, para mí es triste.
fuente
Use la primera letra mayúscula en el nombre de la función.
fuente
Use la aplicación const en lugar de la aplicación const
fuente
Solo intenta poner en mayúscula el nombre de tu aplicación
fuente
Recibirá este error: "React Hook" useState "se llama en la función" Aplicación ", que no es un componente de la función React ni una función personalizada React Hook"
Solución: básicamente necesita capitalizar la función.
Por ejemplo:
fuente
El primer carácter de su función debe ser mayúscula
fuente
Tuve el mismo problema. Resulta que capitalizar la "A" en "Aplicación" fue el problema. Además, si exporta:
export default App;
asegúrese de exportar también el mismo nombre "Aplicación".fuente
Los componentes deben comenzar con letras mayúsculas. ¡Recuerde también cambiar la primera letra de la línea para exportar!
fuente
¿Tienes la importación correcta?
fuente
Los nombres de los componentes de reacción deben escribirse en mayúsculas y las funciones de enlace personalizadas deben comenzar con la palabra clave use para identificar como una función de enlace de reacción.
Entonces, capitalice los componentes de su aplicación en App
fuente
Tuve el mismo problema, pero no con la aplicación. Tenía una clase personalizada pero usé una letra minúscula para iniciar el nombre de la función y también recibí el error.
Cambió la primera letra del nombre de la función y la línea de exportación a CamelCase y desapareció el error.
en mi caso el resultado final fue algo como:
Esto resolvió mi problema.
fuente
La solución es simple, corrige "aplicación" y escribe "Aplicación" con el primer carácter en mayúscula.
fuente
Capitalizar la aplicación a la aplicación seguramente funcionará.
fuente
En JSX, el nombre de la etiqueta en minúsculas se considera como componente nativo html. Para reaccionar, reconozca la función como componente React, necesita poner en mayúscula el nombre.
https://reactjs.org/docs/jsx-in-depth.html#html-tags-vs.-react-components
fuente
Reemplace esto
con este
fuente
Hacer que el nombre de la función sea capital. Esto funciona para mi.
fuente
Para el siguiente error, capitalice la primera letra del componente como, y también la exportación también.
fuente
La solución, como ya señaló Yuki, es capitalizar el nombre del componente. Es importante tener en cuenta que no solo se debe poner en mayúscula el componente de la aplicación "predeterminada", sino todos los componentes:
Esto se debe al paquete eslint-plugin-react-hooks, específicamente a la función isComponentName () dentro del script RulesOfHooks.js.
Explicación oficial de las preguntas frecuentes de Hooks :
fuente
En primer lugar, debe poner en mayúscula la FirstLetter de sus componentes, en su caso, la aplicación debería ser App y person debería ser Person .
Traté de copiar su código con la esperanza de encontrar el problema. Como no compartió cómo llama al componente de la aplicación , solo puedo ver 1 forma de resolver esto como un problema.
Este es el enlace en CodeSandbox: llamada de enlace no válida .
¿Por qué? Debido al siguiente código que está mal:
Debería haber sido:
Para obtener más información, debe leer Rule of Hooks - React
¡Espero que esto ayude!
fuente
Use mayúscula para definir el nombre del componente funcional / React hooks componentes personalizados. "const 'app' debería ser const 'App'.
App.js
Person.js
[ReactHooks] [useState] [ReactJs]
fuente
Paso 1: cambie el nombre del archivo src / App.js a src / app.js
Paso 2: haga clic en "Sí" para "Actualizar importaciones para app.js".
Paso 3: reinicie el servidor nuevamente.
fuente
Siempre que trabaje con un componente funcional React, mantenga siempre la primera letra del nombre del componente en mayúsculas para evitar estos errores de React Hooks.
En su caso, ha nombrado el componente
app
, que debe cambiarse aApp
, como dije anteriormente, para evitar el error React Hook.fuente
fuente
En la función de aplicación, ha deletreado incorrectamente la palabra
setpersonSate
, falta la letrat
, por lo que debería sersetpersonState
.Error :
Solución :
fuente
Esto se debe a la regla ESLint para React Hooks. Encuentre el enlace de la regla aquí:
Regla de ESLint para React Hooks
A partir de ahora, la regla se describe en la línea no. 44)
fuente
No use la función de flecha para crear componentes funcionales.
Haz uno de los siguientes ejemplos:
O
Si tiene problemas con
"ref"
(probablemente en bucles), la solución es usarforwardRef()
:fuente