• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Uncaught TypeError: Cannot read property 'map' of undefined

0 głosów
664 wizyt
pytanie zadane 14 maja 2020 w JavaScript przez robertos18 Obywatel (1,120 p.)

Po kliknieciu w button wywołuje funkcje gameIp pobieram z bazy danych zestaw pytan i odpowiedzi np:

state={
qBank: {
Correct:"Tomek"
Question1:"Jak masz na imie?"
RouteId:1
Answers:["ala","ola","Tomek","jan"]
}
}

Które przyporządkowuje do jakies nazwy "if (id === point.RouteId)"
Problemem jest błąd który wyskakuje w konsoli Uncaught TypeError: Cannot read property 'map' of undefined. Nie potrafię sobie poradzić z tym problem. Prośba do doswiadczonych programistów o zerkniecie gdzie robie błąd?

 gameIp(id) {
        const newQuestion2 = []
        for (const point of this.state.qBank) {
            if (id === point.RouteId) {
                newQuestion2.push({
                    question: point.Question1,
                    answers: [...point.Answers],
                    correct: point.Correct,
                    id: point.Id
                });

            }

        }

        this.setState({ qBank: newQuestion2 })
    }

W metodzie render wyswietlam to:

 {this.state.qBank.map(({ question, answers, correct, id }) => (
<QuestionBox key={id} question={question} options={answers} selected={answer => this.computeAnswer(answer, correct)} />
                                )
                            )}

QuestionBox wygląda tak:

import React, { useState } from 'react';

const QuestionBox = ({ question, options, selected }) => {
    const [answers, setAnswer] = useState(options);
    return (
        <div className="questionBox">
            <div className="question">{question}</div>
            {answers.map((text, id) => (
                <button key={id} className="answerBtn" onClick={() => {
                    setAnswer([text]);
                    selected(text)
                }}>{text}</button>
            ))}
        </div>
    )
}
export default QuestionBox;

 

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 784 wizyt
pytanie zadane 10 sierpnia 2017 w JavaScript przez sc4rface Dyskutant (7,710 p.)
0 głosów
1 odpowiedź 1,360 wizyt
0 głosów
2 odpowiedzi 2,329 wizyt

93,742 zapytań

142,678 odpowiedzi

323,297 komentarzy

63,328 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...