Maison  >  Questions et réponses  >  le corps du texte

Lorsque je clique sur OnClick(SetState) pour la deuxième fois, j'obtiens une erreur, que dois-je faire ?

Quand je clique sur <a onClick{() => "function"}> pour la première fois, tout va bien, mais quand je clique pour la deuxième fois, tout se casse. Voilà j'ai le code :

function ref(sub) {
    console.log(Subjects)
    SetSubjects(Subjects[sub] = true)
    console.log(Subjects)
};

const [Subjects, SetSubjects] = useState({
    "Mathematics": false,
    "Physics": false,
    "Ukranian": false,
    "English": false,
    "Chemistry": false,
    "Informatics": false,
    "History": false
})
return (
        <div className="area">
            <div className="logo_header"><a className="logo_header_text" href="/">Owly</a></div>
            <h1 className="tittle">Choose the Subject</h1>
            <div className="select_btns">
                <a onClick={() => ref("Mathematics")} >Mathematics</a>
                <a onClick={() => ref("Physics")} >Physics</a>
                <a onClick={() => ref("Ukranian")} >Ukranian</a>
                <a onClick={() => ref("English")} >English</a>
                <a onClick={() => ref("Chemistry")}>Chemistry</a>
                <a onClick={() => ref("Informatics")}>Informatics</a>
                <a onClick={() => ref("History")}>History</a>
            </div>

Ici j'ai un écran Premier clic :

Deuxième clic :

Peu importe le bouton que je choisis

P粉138871485P粉138871485240 Il y a quelques jours829

répondre à tous(1)je répondrai

  • P粉865900994

    P粉8659009942024-02-22 18:57:45

    Cela ne s’est pas passé comme vous le pensiez :

    SetSubjects(Subjects[sub] = true)

    Expression Subjects[sub] = true结果是值 true,因此您将 Subjects 设置为值 true。当然,它不具有您期望从 Subjects Toute propriété obtenue par l'objet.

    Je suppose que vous cherchez ceci :

    SetSubjects({ ...Subjects, [sub]: true })

    Ce sera Subjects 设置为包含当前 Subjects 上所有属性的对象,并将 sub 中的值定义的属性设置为 true.

    répondre
    0
  • Annulerrépondre