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

151
Vistas
React State Hook inicializado a [] todavía muestra el tipo como indefinido

Código:

 const [input, setInput] = useState(''); const [studentList, setStudentList] = useState([]); useEffect(() => { console.log(studentList) console.log(studentList.type) }, [studentList]); return ( <div id="add-students-input-div"> <input type="text" id='add-students-input' value={input} placeholder='Enter a student to the database' onChange={(event) => { setInput(event.target.value) }} /> <div id="add-students-button" onClick={() => { setStudentList([document.getElementById('add-students-input').value, ...studentList]) setInput('') }}> <p>Add</p> </div> </div> )

Problema: la declaración de impresión para studentList devuelve la matriz, pero la declaración de impresión para studentList.type no está definida en todo momento, incluso después de agregar elementos a la matriz.

¿Cómo puedo asegurarme de que studentList.type devuelva Array .

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

studentList en su código siempre será una matriz, vacía cuando inicialice el estado. Si desea verificar si hay algo en la matriz, debe usar studentList.length

about 4 years ago · Santiago Trujillo Denunciar

0

Como se menciona en los comentarios, las matrices no tienen una propiedad de type .

Su valor de estado studentList siempre es una matriz; no hay necesidad de comprobar su tipo.

Una cosa que parece estar haciendo incorrectamente es actualizar studentList cuando hace clic en su botón ( <div> ). En resumen, realmente no debería necesitar usar métodos DOM en React.

Para actualizar su matriz con el valor de su estado de input , use esto...

 const handleClick = () => { setStudentList((prev) => [input, ...prev]); setInput(""); };

y

 <div id="add-students-button" onClick={handleClick}> <p>Add</p> </div>

Consulte useState - Actualizaciones funcionales para obtener información sobre cómo estoy usando setStudentList()

about 4 years ago · Santiago Trujillo Denunciar

0

Aunque los colaboradores anteriores resolvieron su problema eliminándolo en otro lugar, me gustaría responder esto:

¿Cómo puedo asegurarme de que studentList.type devuelva Array?

Si quiere asegurarse de que su variable sea una matriz, puede usar el método estático isArray() de Array:

 Array.isArray(studentList) // returns true if array or false if not
about 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