• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

314
Vistas
¿Por qué este código me da el error "TypeError no capturado: no se pueden leer las propiedades de nulo (leyendo 'push')"?

En este código, recibo un error como Uncaught TypeError: No se pueden leer las propiedades de nulo (leyendo 'push')

 console.log("HI"); let addbtn = document.getElementById("addbtn"); addbtn.addEventListener("click", function (e) { let addtxt = document.getElementById("addtxt"); let notes = localStorage.getItem("notes"); if (notes == null) { notesObj = []; } else { notesObj = JSON.parse(notes); } notesObj.push(addtxt.value); //getting error at this point. Don't know why localStorage.setItem("notes", JSON.stringify(notesObj)); addtxt = ""; console.log(notesObj); });
almost 3 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

mira esto espero que solucione tu problema

 let addbtn = document.getElementById("addbtn"); console.log('addbtn ', addbtn); addbtn?.addEventListener("click", function (e) { let addtxt = document.getElementById("addtxt"); let notes = localStorage.getItem("notes"); notesObj = JSON.parse(notes ?? '[]'); console.log('addtxt.value ', addtxt?.value); notesObj.push(addtxt.value); //getting error at this point. Don't know why localStorage.setItem("notes", JSON.stringify(notesObj)); addtxt = ""; console.log(notesObj); });
almost 3 years ago · Juan Pablo Isaza Denunciar

0

El problema es que tiene la cadena 'null' en su almacenamiento local.

Sí, se compara con null , pero las notes siguen siendo JSON en este punto, y aparentemente se pueden codificar como null como JSON. Por lo tanto, también deberá verificar si hay 'null' como cadena.

O, más fácil: Reemplace el conjunto if con algo como esto:

 const notesObj = (notes && JSON.parse(notes)) ?? []

Si también desea ser resistente contra JSON no válido en el almacenamiento local, puede usar esto:

 let notesObj try { notesObj = JSON.stringify(notes) ?? [] } catch(e) {}
almost 3 years ago · Juan Pablo Isaza Denunciar

0

para solucionar este problema, use localstorage.clear() en la consola. eso es todo.

almost 3 years ago · Juan Pablo Isaza 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda