Apabila saya mengklik pada <a onClick{() => "function"}> untuk kali pertama, semuanya baik-baik saja, tetapi apabila saya mengklik untuk kali kedua, semuanya rosak. Di sini saya mendapat kod:
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>
Di sini saya mempunyai skrin Klik pertama:
Klik kedua:
Tidak kira butang mana yang saya pilih
Ini tidak seperti yang anda fikirkan:
Ekspresi
Subjects[sub] = true
的结果是值true
,因此您将Subjects
设置为值true
。当然,它不具有您期望从Subjects
Sebarang harta yang diperolehi oleh objek.Saya syak anda sedang mencari ini:
Ini akan
Subjects
设置为包含当前Subjects
上所有属性的对象,并将sub
中的值定义的属性设置为true
.