Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

151
Views
.empuje fallido. Funciona sin almacenamiento local

No puedo obtener la entrada del usuario para enviar al almacenamiento local. Cuando mi variable quizData es una matriz vacía, funciona bien,

 let quizData = JSON.parse(localStorage.getItem('MyQuiz'));

y cambiarlo de nuevo a esto funciona porque (supongo) ya hay información en LS,

 let quizData = JSON.parse(localStorage.getItem('MyQuiz'));

pero borrar LS hará que vuelva a fallar. Cualquier ayuda que pueda obtener sería muy apreciada.

 let quizData = JSON.parse(localStorage.getItem('MyQuiz')); const addQuiz = (ev) => { ev.preventDefault(); let quizForm = { question: document.getElementById('question-input').value, a: document.getElementById('a-input').value, b: document.getElementById('b-input').value, c: document.getElementById('c-input').value, d: document.getElementById('d-input').value, correct: document.getElementById('correct-input').value, }; quizData.push(quizForm); document.forms[0].reset(); console.warn('added', { quizData }); localStorage.setItem('MyQuiz', JSON.stringify(quizData)); }; document.addEventListener('DOMContentLoaded', () => { document.getElementById('submitForm').addEventListener('click', addQuiz); console.log(quizData); });

y el error custom-questions.js:26

TypeError no capturado: no se pueden leer las propiedades de nulo (leyendo 'push') en HTMLButtonElement.addQuiz

about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Simplemente puede configurar quizData en una nueva matriz si no hay nada en localStorage .

 let quizData = JSON.parse(localStorage.getItem('MyQuiz')) ?? [];

Si quizData se actualiza en otro lugar, es mejor recuperar la matriz más reciente antes de actualizarla. Para que pueda obtener los últimos quizData dentro addQuiz .

 const addQuiz = (ev) => { ev.preventDefault(); let quizForm = { question: document.getElementById('question-input').value, a: document.getElementById('a-input').value, b: document.getElementById('b-input').value, c: document.getElementById('c-input').value, d: document.getElementById('d-input').value, correct: document.getElementById('correct-input').value, }; const quizData = JSON.parse(localStorage.getItem('MyQuiz')) ?? []; quizData.push(quizForm); document.forms[0].reset(); console.warn('added', { quizData }); localStorage.setItem('MyQuiz', JSON.stringify(quizData)); };
about 4 years ago · Santiago Trujillo Report

0

Debe inicializar quizData como una matriz vacía si es nulo o indefinido.

 let quizData = JSON.parse(localStorage.getItem('MyQuiz')) || [];
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!